Javascript 在jquery validate的submitHandler中访问表单输入值
在jqueryvalidate的submitHandler回调中,应该如何访问给定的表单输入?我有一个复杂的解决方案,但我希望一定有更好的办法Javascript 在jquery validate的submitHandler中访问表单输入值,javascript,jquery,forms,jquery-validate,Javascript,Jquery,Forms,Jquery Validate,在jqueryvalidate的submitHandler回调中,应该如何访问给定的表单输入?我有一个复杂的解决方案,但我希望一定有更好的办法 直接以输入的值为目标:$'myform input[name=myName]'。val 演示: 使用内置的表单参数:$form.find'input[name=myName]'.val 演示:直接以输入值为目标:$'myform input[name=myName]'。val 演示: 使用内置的表单参数:$form.find'input[name=myN
直接以输入的值为目标:$'myform input[name=myName]'。val 演示: 使用内置的表单参数:$form.find'input[name=myName]'.val
演示:直接以输入值为目标:$'myform input[name=myName]'。val 演示: 使用内置的表单参数:$form.find'input[name=myName]'.val
演示:您根本没有解释根本问题,也没有解释您最终要实现的目标。通常在提交之前使用jQuery的.serialize获取表单的数据。否则,可以将单个输入作为目标并附加到.val以获取其值。为什么要输入.filter“[name=myName]”.val而不是简单的$“[name=myName]”.val?@Sparky我通常使用。完全按照您说的进行序列化。不过,这一次,我希望获取两个表单输入的值,并将它们添加到一个表中,然后在发生其他事件时将它们发送到服务器。val@Sparky. 肯定比我做的要好。谢谢您根本没有解释根本问题,也没有解释您最终要实现的目标。通常在提交之前使用jQuery的.serialize获取表单的数据。否则,可以将单个输入作为目标并附加到.val以获取其值。为什么要输入.filter“[name=myName]”.val而不是简单的$“[name=myName]”.val?@Sparky我通常使用。完全按照您说的进行序列化。不过,这一次,我希望获取两个表单输入的值,并将它们添加到一个表中,然后在发生其他事件时将它们发送到服务器。val@Sparky. 肯定比我做的要好。谢谢我看到你的方法没有从表单或这个对象获得输入。一个问题是输入名称相同的多个表单@user1032531,只需给选择器更多的特殊性。见编辑后的答案。顺便说一句,$this对象没有在submitHandler中使用,因为它没有上下文,如果您真的想使用form参数:$form.find'input[name=myName]',valWas将建议您的第二个解决方案。我认为这是最好的,但我很惊讶,超级清洁的解决方案。哦,好吧。感谢您的帮助。我发现您的方法无法从表单或此对象获取输入。一个问题是输入名称相同的多个表单@user1032531,只需给选择器更多的特殊性。见编辑后的答案。顺便说一句,$this对象没有在submitHandler中使用,因为它没有上下文,如果您真的想使用form参数:$form.find'input[name=myName]',valWas将建议您的第二个解决方案。我认为这是最好的,但我很惊讶,超级清洁的解决方案。哦,好吧。谢谢你的帮助。
$(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>