Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery validate的submitHandler中访问表单输入值_Javascript_Jquery_Forms_Jquery Validate - Fatal编程技术网

Javascript 在jquery validate的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

在jqueryvalidate的submitHandler回调中,应该如何访问给定的表单输入?我有一个复杂的解决方案,但我希望一定有更好的办法


直接以输入的值为目标:$'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>