此代码:
$tds = $(this).closest('tr').find(td input,select);
$tds.attr('disabled','disabled');
让我的桌子行无法使用,也无法点击。但是,我确实改变了表行单元格中隐藏输入的值,如果我使用了aboce代码,它就不会改变。所以我决定不使用它。
现在我正在寻找一个使用它的方法:
document.getElementById("myText").readOnly = true;
,这项工作适用于单个输入,但我确实希望输入,选择和按钮只读或不点击该单击的行。
答案 0 :(得分:2)
在选择器中使用input
获取input
,select
和button
,假设您在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');