我必须真诚地感谢Darren Davies对我编写测试html文件的以下代码的帮助。
<html>
<head>
<title>field_enable</title>
<script type="text/javascript" src="script/jquery.js"></script>
<script>
$().ready(function() {
$('#clicker').click(function() {
$('input').each(function() {
if ($(this).attr('disabled')) {
$(this).removeAttr('disabled');
}
else {
$(this).attr({
'disabled': 'disabled'
});
}
});
});
});
</script>
</head>
<body>
<div id='clicker' style='background-color:#FF0000; height:20px; width:50px;'></div>
<br>
<input type='text' disabled></input>
<input type='text' disabled></input>
<input type='text' disabled></input>
</body>
</html>
这很好用,但是如果我需要为各种客户端禁用某个字段的字段,我的表单有很多。当我应用代码时,它肯定会激活我已禁用的字段,但它也会禁用表单中的其余字段,即使它们没有设置属性。我现在的问题是弄清楚如何仅激活我已禁用的字段并启用其余字段。
答案 0 :(得分:1)
如果您只想影响某些字段,可以将这些字段分配给特定的类(在此示例中可更改)
<input type='text' disabled class="changeable" />
并更改此行
$('input').each(function() {
到
$('input.changeable').each(function() {
因此它仅适用于具有给定类
的输入答案 1 :(得分:1)
它会禁用其他字段,因为您的&#34; if&#34;告诉它这样做。当你使用:
if ($(this).attr('disabled'))
当输入没有此attr时,它会使条件失败,因此它将禁用输入! :)
您可以检查的是:
if ($(this).is("[disabled]") && $(this).attr('disabled')){
// do your stuff here
}
所以使用elem.is(&#34; attr-name&#34;)你可以知道它是否有你的attr。
Ivan指出了另一种解决方案,你可以使用类来区分你的输入。
干杯