我有一些init jquery函数,我设置了一些应用程序启动时需要的属性(例如我需要在启动时设置为禁用btnRun。这项工作:
代码很简单:
$('#btnRun').attr("disabled", "disabled");
接下来就是在复选框上更改我在启用时更改btnRun,或禁用(如果选中启用,则禁用);
$('#cbEdit').change(function () {
var checkboxValue = $(this).is(':checked');
if (!checkboxValue)
{
$('#div1').find('input[type="text"], textarea').attr('disabled', 'disabled');
//disabling all input and textarea on div1,bntRun is not on this div1
$('#btnRun').attr("disabled", "disabled"); }
else
{
$('#div1').find('input[type="text"], textarea').attr('disabled', false);
document.getElementById("lblFn").focus();
$('#btnRun').attr('disabled', false);
}
...
...
什么是问题,输入文字和文本区域这完美,但白色按钮并不总是。
如果我在init中使用我在开始($('#btnRun').attr("disabled", "disabled");)
它不工作它总是禁用。我认为重要的是我写了我在Init函数中禁用输入文本和文本区域。
如果我删除按钮禁用代码行是工作,但比我需要开始有禁用按钮,然后启用它的问题。我只用按钮来做这个,我知道其他的东西不行,但我不能找到为什么输入文本和文本区域以相同的方式工作,但是按钮没有。
.attr
选项只是我尝试,支持和使用.removeatrr
,但事实并非如此,因为在禁用init时它工作得很好。
答案 0 :(得分:2)
您不应该使用attr
,而应使用prop
:
$('#btnRun').prop("disabled", true);
或
$('#btnRun').prop("disabled", false);
来自jQuery文档:
例如,应检索selectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked和defaultSelected,并使用.prop()方法进行设置。在jQuery 1.6之前,可以使用.attr()方法检索这些属性,但这不在attr的范围内。
答案 1 :(得分:1)
您需要删除该属性,例如
$('#btnRun').removeAttr("disabled");
答案 2 :(得分:0)
最好使用prop方法代替attr来获取下一个属性: 残疾人, 选择 检查。
$('#btnRun').prop("disabled", true);
答案 3 :(得分:0)
如果您正在寻找文字输入,则几乎找不到任何按钮:
find('input[type="text"] ...
更改为
find('input[type="button"]