JQuery输入元素
问题描述:
我需要获取div中的所有输入元素,然后附加事件处理程序,以便每当值更改时都更新一个隐藏字段。如果是的话,div中的子元素可能已经包含了事件处理程序,如果是这样的话,attach应该链接它。JQuery输入元素
任何帮助,非常感谢。
答
jQuery的自动处理链,所以下面应该工作:
$("div input").change(function() { whatever(); });
答
嗯,我很好奇,为什么你需要更新的隐藏字段,有你的数据复制。但是,如果你坚持,这是一个“一刀切的解决方案”,虽然你可能会失去一些灵活性,而不是手动附加每个元素。
首先,HTML:
<form id="form">
<input type="text" id="txtName" />
<input type="hidden" id="hdnName" />
<input type="text" id="txtEmail" />
<input type="hidden" id="hdnEmail" />
<select id="selGender">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
<input type="hidden" id="hdnGender" />
</form>
现在,使用Javascript:
$(document).ready(function() {
$("#form").find("input[type='text'], select").change(function() {
$this = $(this);
var id = $this.attr("id");
id = id.split(3, id.length - 1);
$("#hdn" + id).val($this.val())
});
});
对于这项工作,它假定你有每个字段作为text
领域,也是他们遵循的是命名约定我在这里使用([txt|sel]FieldName
,hdnFieldName
)
答
$("#divID :input").change(function(){
// write your code here
});
其中divID是div的唯一ID。这将选择div内的所有输入,textarea,select和button元素。
如果你想避免按钮元件可以使用运营商不喜欢
$("#divI :input:not('button')").change(function(){
});
我已经把警报在函数体中,但我没有得到任何警报。对你起作用吗?我正在测试选择框。顺便说一下,可以有各种输入元素,包括选择,文本框,单选按钮等。 – codeasp 2010-03-09 03:44:43
是的,我的代码至少应该用于文本框,单选按钮和选择框(文本框仅在失去焦点时才会触发,虽然,不是每次按键)。 它不起作用的最可能的原因是你没有选择你期望在选择器中的元素(即“div输入”位)。要测试这个理论,请尝试: $(“div input”)。each(function(){alert(this);}); 这应该告诉你,如果你实际选择正确的元素。 – 2010-03-09 03:52:10
但它不适用于选择框,因为它仅查找输入标签。您需要将选择器更改为$(“input,select”)。 – monksp 2010-03-09 04:04:42