【问题标题】:jQuery - Disable Form FieldsjQuery - 禁用表单字段
【发布时间】:2010-11-26 02:50:47
【问题描述】:

我有 2 个字段:1 个输入,1 个选择框。

当用户使用另一个字段时,是否可以让浏览器禁用其中一个字段?

例如,如果用户在输入中输入数据,则选择框被禁用。如果用户从选择(下拉)中选择数据,则输入被禁用。

对此的任何帮助将不胜感激。

提前干杯。

【问题讨论】:

    标签: jquery forms


    【解决方案1】:
    <script type="text/javascript" src="jquery.js"></script>          
    <script type="text/javascript">
      $(document).ready(function() {
          $("#suburb").blur(function() {
              if ($(this).val() != '')
                  $("#post_code").attr("disabled", "disabled");
              else
                  $("#post_code").removeAttr("disabled");
          });
    
          $("#post_code").blur(function() {
              if ($(this).val() != '')
                  $("#suburb").attr("disabled", "disabled");
              else
                  $("#suburb").removeAttr("disabled");
          });
      });
    </script>
    

    您还需要在 select 元素下的第一个选项中添加一个 value 属性:

    <option value=""></option>
    

    【讨论】:

    • 嗨 bigmattyh,感谢您的快速回复。不幸的是,该脚本不适合我。为了使脚本正常工作,我需要做些什么吗?下面是我的代码:
    • 好吧,您需要包含 jQuery,并将此代码放入 $(document).ready() 块中(已更新以反映这一点)。至于您的 HTML,您需要在该选择框上设置一个默认值,以使其可靠地工作。
    • 感谢您的努力。不幸的是,它对我不起作用。干杯。
    • 也许您可以发布更多代码。不看代码就很难诊断出问题所在。
    • 再次感谢您。也许我没有准确地描述我想要达到的目标。如您所知,有 2 个字段:输入、选择。当一个人在输入中输入数据时,应该禁用选择字段。从选择字段中选择时也是如此。问题是,一个人必须“点击”字段才能让另一个人再次“有能力”。下面是我的代码: 干杯。
    【解决方案2】:

    jQuery 文档说将 prop() 用于禁用、检查等。此外,更简洁的方法是使用他们的选择器引擎。因此要禁用 div 或表单父级中的所有表单元素。

    $myForm.find(':input:not(:disabled)').prop('disabled',true);
    

    要再次启用,您可以这样做

    $myForm.find(':input:disabled').prop('disabled',false);
    

    【讨论】:

    • 这更简洁,更容易包含在任何逻辑结构中
    • 对于 jQuery 1.6+,这是推荐的方法。
    【解决方案3】:
    $('input, select').attr('disabled', 'disabled');
    

    【讨论】:

    • +1 我为样式添加以下行: $('input, textarea').attr('readonly', 'readonly');
    【解决方案4】:

    试试这个

    $("#inp").focus(function(){$("#sel").attr('disabled','true');});
    
    $("#inp").blur(function(){$("#sel").removeAttr('disabled');});
    

    select 反之亦然。

    【讨论】:

    • 你能补充一下发生了什么吗?我在 IE 中试了一下,效果很好。
    • 嘿Nrj。感谢回复。我添加了脚本。但什么也没有发生。我添加了 $(document).ready(function() 并尝试了不同的 ID 名称,但没有任何反应。干杯。
    【解决方案5】:

    这里有一个 jquery 插件可以做同样的事情:http://s.technabled.com/jquery-foggle

    【讨论】:

    • 成本在 3 美元或 15 美元之间,不是开源的,但它确实解决了问题。
    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 2016-08-31
    • 2018-01-01
    • 1970-01-01
    • 2012-02-09
    • 2021-08-04
    • 2020-01-06
    • 2011-03-25
    相关资源
    最近更新 更多