jquery选择器缺少子项

时间:2015-06-01 23:26:02

标签: javascript jquery

我的页面需要禁用大型DIV中的所有元素,但是有一个按钮可以在单击时重新启用同一组元素。我的问题是第一个jquery运行良好,所有元素都被禁用。当我的click事件执行第二个jquery时,会跳过一些但不是所有先前禁用的元素。

$('#FormLockingDiv').find('input, textarea, button, select, optgroup').attr('disabled', 'disabled');

$('#FormLockingDiv').find('input, textarea, button, select, optgroup').removeAttr('disabled');

我尝试了以下具有相同结果的选择器:

$('#FormLockingDiv:disabled')
$('#FormLockingDiv[disabled]')
$('#FormLockingDiv').childeren

div中有textareas按钮复选框和下拉列表,并且似乎没有一个提示始终启用。

编辑:这与使用ASP.Net UpdatePanel中的ASP.Net按钮有关。在面板的后面,我添加了对解锁功能的调用,但这似乎有一些导致问题的交互。这是抛出错误“未终止的字符串常量”。当我添加标准按钮来触发不执行回发的相同代码时,将启用所有禁用的元素。这可能与表单没有完全实例化有关吗? 这是触发此错误的命令:

$('#FormLockingDiv').is(':disabled').attr('disabled', false);

以下是功能

function Lockup() {
    $('#FormLockingDiv').find('input, textarea, button, select, optgroup').attr('disabled', 'disabled');
    $('.btnUnlockFormSelector').removeAttr('disabled');
}

function UnLockup() {
    $('#FormLockingDiv').is(':disabled').attr('disabled', false);
}

1 个答案:

答案 0 :(得分:0)

将其更改为:

$('#FormLockingDiv').find('input, textarea, button, select, optgroup').attr('disabled', false);