jQuery - 禁用表单字段

时间:2009-09-07 02:33:31

标签: jquery forms

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

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

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

非常感谢任何帮助。

提前干杯。

5 个答案:

答案 0 :(得分:113)

<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>

答案 1 :(得分:45)

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

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

再次启用你可以做

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

答案 2 :(得分:12)

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

答案 3 :(得分:7)

试试这个

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

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

反之亦然。

答案 4 :(得分:0)

这是一个jquery插件,可以执行相同的操作:http://s.technabled.com/jquery-foggle