[英]JQuery: Can't disable an element for an Ajax response
我有一个由Ajax返回创建的动态对话框。 我需要框中的下拉列表元素$('#functionSelect')更改输入字段的残障性(如果更改)。 下面是我的代码:
$.ajax({
type: "POST",
async: false,
url: "app_processor.php",
data: {action: "updateCriteriaParameter", criteriaid: criteriaid},
success: function (msg) {
//alert(msg);
if (msg !== 0)
{
$(".dialogDiv").html(msg);
}
}
});
$(document).on('change', '#functionSelect', function () {
functionSelect = $(this).val();
switch (functionSelect) {
case 0:
{
$('#selectPThrehold').attr('disabled', 'disabled');
$('#selectIThrehold').attr('disabled', 'disabled');
}
break;
case 1:
{
$('#selectPThrehold').attr('disabled', 'disabled');
}
break;
case 2:
{
$('#selectIThrehold').attr('disabled', 'disabled');
}
break;
case 5:
{
$('#selectIThrehold').attr('disabled', 'disabled');
}
break;
}
});
但是我似乎无法禁用其他元素,例如$('#selectPThrehold')
有谁知道我该怎么做。
尝试这个
$( document ).ajaxComplete(function() {
$("#functionSelect").change(function () {
$('#selectPThrehold').prop('disabled', true);
});
});
$.ajax({
type: "POST",
async: false,
url: "app_processor.php",
data: {action: "updateCriteriaParameter", criteriaid: criteriaid},
success: function (msg) {
//alert(msg);
if (msg !== 0) {
$(".dialogDiv").html(msg);
$(".dialogDiv").find('#functionSelect').change(function () {
var functionSelect = $(this).val();
$('#selectPThrehold').attr('disabled', 'disabled');
});
}
}
});
尝试这个
$(document).on('ajax:success', 'body', function (event, xhr, settings) {
functionSelect = $(this).val();
$('#selectPThrehold').attr('disabled', 'disabled');
});
使用ajax:success ,如果body触发了一个Ajax查询,并且另一个链接或对象放入了正确的链接,则该代码将返回成功,并返回成功。
我找到了解决方案。 我不得不使用find()方法来获取ajax返回子元素,并且它起作用了。 我不知道为什么我不能直接做。
$(document).on('change', '#functionSelect', function () {
functionSelect = $(this).val();
$(".dialogDiv").find('#selectPThrehold').removeAttr('disabled');
$(".dialogDiv").find('#selectIThrehold').removeAttr('disabled');
if (functionSelect == 0)
{
$(".dialogDiv").find('#selectPThrehold').attr('disabled', 'disabled');
$(".dialogDiv").find('#selectIThrehold').attr('disabled', 'disabled');
}
else if (functionSelect == 1)
$(".dialogDiv").find('#selectPThrehold').attr('disabled', 'disabled');
else if (functionSelect == 2)
$(".dialogDiv").find('#selectIThrehold').attr('disabled', 'disabled');
else if (functionSelect == 5)
$(".dialogDiv").find('#selectIThrehold').attr('disabled', 'disabled');
});
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.