我使用JQuery
对两个输入的文本元素(即是readonly
)和两个按钮,使按钮1被点击时仅输入1应成为读/写。并且,当按钮2被点击时,只有输入2应该变为可读/写。当再次点击相应的按钮时,相应的输入应该再次只读。但是我的后续脚本改变了这两个输入的只读属性,不管点击哪个按钮。我想只有一个事件应该针对特定输入被解雇这里用户解释hereJQuery的类选择
注意:我知道我们可以用它代替类选择,但我的真实的情景是动态生成的输入和按钮标签ID通过循环,数据来自数据库。因此,我们不知道每次会创建多少这样的元素。而且,正如上面提到的链接中的用户所指出的,只有一个点击事件应该为相应的按钮触发。所以问题是我们如何实现这种情况,因为下面给出的例子不适用于这种情况。
HTML:
<table>
<tbody>
<tr>
<td>
<input class="txtInput" type="text" name="test1" value="test1val" readonly/>
</td>
<td>
<input type="button" class="btnEdit" name="editName" value="Edit"/>
</td>
</tr>
<tr>
<td>
<input class="txtInput" type="text" name="test2" value="test2val" readonly />
</td>
<td>
<input type="button" class="btnEdit" name="editName" value="Edit" />
</td>
</tr>
</tbody>
</table>
JQuery的:
$(document).ready(function() {
$('.btnEdit').click(function() {
if ($('.txtInput').prop('readonly')) {
$('.txtInput').removeAttr('readonly');
}
else {
$('.txtInput').attr('readonly', 'readonly')
}
});
});
页显示:
您的示例使两个输入在单击其他按钮后都可编辑。 E.g:单击btn1将input1标签更改为可编辑。然后点击btn2使input2标签可编辑;但input1标签仍然可编辑。 – nam
@nam - 我认为这是关键,但如果你只想有一个输入活跃,只需设置它们的只读属性,然后再对当前的属性进行更改等。编辑答案。 – adeneo