jQuery-禁用表单字段

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

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

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

任何帮助,将不胜感激。

提前加油。

user159025 asked 2019-11-18T07:50:55Z
5个解决方案
113 votes
<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>

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

<option value=""></option>
Matt Howell answered 2019-11-18T07:51:16Z
45 votes

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

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

为了再次启用,您可以执行

$myForm.find(':input:disabled').prop('disabled',false);
MetaSkills answered 2019-11-18T07:51:46Z
12 votes
$('input, select').attr('disabled', 'disabled');
Rigobert Song answered 2019-11-18T07:52:03Z
7 votes

试试这个

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

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

反之亦然。

Nrj answered 2019-11-18T07:52:34Z
0 votes

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

Rohit bal answered 2019-11-18T07:52:58Z
translate from https://stackoverflow.com:/questions/1387341/jquery-disable-form-fields