【发布时间】:2016-10-07 14:17:55
【问题描述】:
如何在 jQuery validate() 的 submitHandler 回调中访问给定的表单输入?我有一个复杂的解决方案,但希望有更好的方法。
http://jsfiddle.net/1tzuojpg/2/
$(document).ready(function(){
$("#myform").validate({
submitHandler: function(form) {
var inputs=$(form).find(':input');
console.log('inputs',inputs);
console.log('form',form,$(form),form.elements);
console.log('this',this, $(this));
//console.log( this.serializeArray() ); //this is not a jQuery object
console.log( $( this ).serializeArray() );
console.log( $( form ).serializeArray() );
console.log( inputs.serializeArray() );
alert(inputs.filter('[name=myName]').val());
}
});
});
<form id='myform' >
<input type='text' name='myName' value="123" />
<input type="submit" value="submit">
</form>
【问题讨论】:
-
您根本没有解释根本问题或您最终要达到的目标。通常使用 jQuery 的
.serialize()在提交之前获取表单的数据。否则,可以将单个输入作为目标并将其附加到.val()以获取其值。 -
为什么是
inputs.filter('[name=myName]').val()而不是简单的$('[name=myName]').val()? -
@Sparky 通常,我使用
.serialize(),就像你说的那样。然而,这一次,我希望获得几个表单输入的值并将它们添加到一个表中,并在发生其他事件时将它们发送到服务器。 -
然后直接定位输入的值:
$('input[name="myName"]').val() -
@Sparky。绝对比我正在做的要好。谢谢!
标签: javascript jquery forms jquery-validate