我有一个包含多个搜索(文本)字段的表单.当文本输入其中一个字段时,我想禁用其他字段.相反,如果从活动文本字段中删除所有文本,则应重新启用其他字段.
基本的想法是这样的(我认为):
$(document).ready(function() { $("input[@type=text]").keypress(function(e) { if(current textbox has text in it) { //disable all textboxes that aren't this one } else { //enable all textboxes } }); });
我不清楚找到/使用"所有不是这个文本框"的最简单方法是什么.
我认为"所有不是这个文本框"的最佳方法是使用not
过滤器:
$(document).ready(function() { $(":text").keyup(function(e) { if($(this).val() != '') { $(":text").not(this).attr('disabled','disabled'); } else { $(":text").removeAttr('disabled'); } }); });
我建议为要包含此行为的所有输入元素提供一个类,并执行input.myfields的选择器,因为它更快/更清晰.
此外,从jQuery 1.3开始,@
不支持选择器中的.:text
是你想要的简写,如果你坚持以这种方式选择它们.
我也认为你想要这个keyup
活动而不是keypress
.