【问题标题】:Disabling inputs with jQuery not working使用 jQuery 禁用输入不起作用
【发布时间】:2010-06-01 17:34:11
【问题描述】:

我正在尝试使用 jQuery 1.4.2 禁用某些输入字段。这是 HTML 代码的一部分:

<input type="text" disabled="disabled" name="nume" value="Text" />

这是 Javascript:

$('.salveaza').live('click', function(e){
    $.get(ajaxURL, $('form', itemCurent).serialize()+'&id='+itemCurent.data('id')+'&optiune=editeaza-categorie');

    // This is the code for disabeling inputs
    $('input', itemCurent).attr('disabled', 'disabled');

    itemCurent.removeClass('curent');
    $('.optiuniEditeaza', itemCurent).remove();

    e.preventDefault(); 
});

上面的代码不起作用。请注意,输入是使用 jQuery 添加的,这就是我使用 live 的原因,我尝试了各种东西。

我还尝试了 firebug 控制台来禁用页面上的所有输入字段,但它不起作用:

$('input').attr('disabled', 'disabled');

我们将不胜感激, 谢谢

【问题讨论】:

  • 这似乎是禁用input 元素的正确过程,只要inputitemCurent 的子元素。您确定$.get() 之后的代码正在运行吗?请求成功了吗?
  • 是的,输入是 itemCurent 的子项,我也尝试禁用页面上的所有输入,它只是启用所有输入。

标签: javascript jquery html input


【解决方案1】:

这应该可以解决问题:

禁用:$('#the-field-id').attr('disabled', true);

启用:$('#the-field-id').removeAttr('disabled');

【讨论】:

  • 在您的输入字段中,您必须设置一个 ID 或类来调用该操作! [ $('#something') -> 调用 ID "something" ] [ $('.something') -> 调用类 "something" ] [ # -> for ID ] [ . -> 类]
【解决方案2】:

使用true 代替disabled

$("input").attr("disabled", true);

工作示例: http://jsfiddle.net/bEC8L/(输入设置为 5 秒后禁用)

如果给定的属性实际上是一个属性名,并且"disabled" 不是disabled 属性的有效值,jQuery 会设置属性而不是属性。

【讨论】:

  • 我尝试使用 true 但它不起作用,我使用了你给我的代码,它启用了所有输入而不是禁用它们。
  • @andreeib:您是否通过我发布的链接检查了工作示例?我只是在几个浏览器中测试了它。您的问题一定在其他地方。
  • 是的,我检查了您的示例并且它正在工作,我使用了控制台并禁用了此 stackoverflow 页面上的输入,但是当我想禁用页面上的输入时,我最终将它们全部启用。感谢您的快速答复。
  • @andreeib:你是直接复制/粘贴的吗?确保您没有将字符串作为第二个参数传递给 .attr(),它必须是布尔值 (true)。
【解决方案3】:

您的一段代码似乎没问题,所以问题一定来自另一部分代码。在您禁用的行上放一个中断,然后逐步运行。

【讨论】:

    【解决方案4】:

    试试这个代码。单击按钮时,文本框将被禁用。

     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#fname").attr("disabled",false);
            $("#idDisable").click(function(){
    
                $("#fname").attr("disabled",true);
    
            });
    
        });
    </script>
    
        <input type="button" id="idDisable" value="click to disable" name="Click"/>
        <input type="text" id="fname" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2017-01-23
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多