无法使用jquery启用按钮

时间:2014-09-02 06:43:59

标签: jquery

我有一些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时它工作得很好。

4 个答案:

答案 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"]