【问题标题】:jQuery - select inputs for specific form on page with multiple formsjQuery - 为具有多个表单的页面上的特定表单选择输入
【发布时间】:2014-01-18 08:49:25
【问题描述】:
在我的页面上,我有多种不同用途的表格。我只想验证其中一种形式。所以我想遍历这个表单的输入并检查它们中的每一个。问题是,当我遍历输入时,我也会看到来自其他表单的输入。
例子:
<form id="form1" name="form1" method="get" action="#">
<input type="text" name="test1" id="test1"/>
<input type="text" name="test2" id="test2"/>
</form>
<form id="form2" name="form2" method="get" action="#">
<input type="text" name="test3" id="test3"/>
<input type="text" name="test4" id="test4"/>
</form>
<script>
jQuery('#form2').submit(function( event ) {
validate_form(this);
event.preventDefault();
});
function validate_form(form){
jQuery(form+':input').each(function(){
console.log(jQuery(this).attr('id'));
});
}
</script>
输出将是:
测试1
测试2
测试3
测试4
我想看到的是:
测试3
测试4
有什么想法吗?非常感谢。
【问题讨论】:
标签:
jquery
html
forms
validation
loops
【解决方案1】:
您可以通过提交表单的id来获得您的预期结果。
试试,
jQuery('#form2').submit(function( event ) {
validate_form($(this).attr('id'));
event.preventDefault();
});
【解决方案2】:
你需要使用.find()
function validate_form(form){
jQuery(form).find(':input').each(function(){
console.log(jQuery(this).attr('id'));
});
}
【解决方案3】:
我认为以下 jQuery 代码可以正常工作:
jQuery('#form2').submit(function( event ) {
validate_form(this);
event.preventDefault();
});
function validate_form(form){
jQuery(form).children('input').each(function(){
console.log(jQuery(this).attr('id'));
});
}
【解决方案4】:
试试下面的
jQuery('#form2').submit(function( event ) {
validate_form($(this));
event.preventDefault();
});
function validate_form(form){
jQuery(form).find(':input').each(function(){
console.log(jQuery(this).attr('id'));
});
}