$ tds.attr('禁用''禁用&#39);不按我想要的方式工作

时间:2014-08-13 03:43:34

标签: javascript jquery

此代码:

$tds = $(this).closest('tr').find(td input,select);
 $tds.attr('disabled','disabled');

让我的桌子行无法使用,也无法点击。但是,我确实改变了表行单元格中隐藏输入的值,如果我使用了aboce代码,它就不会改变。所以我决定不使用它。

现在我正在寻找一个使用它的方法:

document.getElementById("myText").readOnly = true;,这项工作适用于单个输入,但我确实希望输入,选择和按钮只读或不点击该单击的行。

2 个答案:

答案 0 :(得分:2)

在选择器中使用input获取inputselectbutton,假设您在tr上有点击事件,那么您需要找到输入元素那些是descendant的tr,可以使用find()函数进行选择。将公共类分配给要绑定click事件并使用Class Selector (“.class”)的tr。

同时使用prop代替attr

  

从jQuery 1.6开始,.attr()方法为属性返回undefined   尚未设定。检索和更改DOM属性,例如   选中,选中或禁用表单元素的状态,使用   .prop()方法,jQuery doc

$('.trclass').click(function(){
   $(this).find('input').prop('readonly', true);
});

如果要将click事件添加到td而不是tr

$('.tdclass').click(function(){
   $(this).closest('tr').find('input').prop('readonly', true);
});

答案 1 :(得分:1)

不是您的示例的精确表示,但说明了重点:http://jsfiddle.net/ga0mz9zp/1/

用引号括起td input, select,所以:

$tds = $(this).closest('tr').find('td input,select');
$tds.attr('disabled','disabled');