Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 在不刷新页面的情况下使用Ajax的表单验证问题_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript 在不刷新页面的情况下使用Ajax的表单验证问题

Javascript 在不刷新页面的情况下使用Ajax的表单验证问题,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我的页面上有两个表单,我在提交时隐藏了一个myForm,以使用ajax显示其他otherForm 为此,我需要执行函数submit_form()onclick。由于提交时没有使用jQuery和Ajax刷新页面,因此如果字段为空,则表单myForm将隐藏而不发送数据 如何防止表单在提交前隐藏或验证其字段 这是我的表格: <form id="myForm" method="post"> Name: <input name="name" id="name" type="tex

我的页面上有两个表单,我在提交时隐藏了一个
myForm
,以使用ajax显示其他
otherForm

为此,我需要执行函数
submit_form()onclick。由于提交时没有使用jQuery和Ajax刷新页面,因此如果字段为空,则表单
myForm
将隐藏而不发送数据

如何防止表单在提交前隐藏或验证其字段

这是我的表格:

<form id="myForm" method="post">
 Name:    <input name="name" id="name" type="text" /><br />
 Email:   <input name="email" id="email" type="text" /><br />
<input class="newsletter" type="button" id="submitForm" value="Send" onclick="submit_form();"/>

使用
Array#filter
length检查对象值是否存在
函数提交表单(){
var值={};
$.each($('#myForm').serializeArray(),函数(i,字段){
values[field.name]=field.value.trim();
});
if(Object.values(values).filter(a=>!a).length>0){
返回错误
}
console.log(值)
$('#myForm').hide();
$(“#其他形式”).show();
var name=$(“#name”).val();
var email=$(“#email”).val();
$.post(“submit.php”{
姓名:姓名,,
电邮:电邮,,
},
功能(数据){
$('#results').html(数据);
});
}

姓名:
电子邮件:

只需检查其是否为空,然后跳过ajax,
function submit_form() {
    var values = {};
    $.each($('#myForm').serializeArray(), function(i, field) {
        values[field.name] = field.value;
    });
    $('#myForm').hide();
    $('#otherForm').show();
    var name = $("#name").val();
    var email = $("#email").val();

    $.post("submit.php", { name: name, email: email, },
    function(data) {
     $('#results').html(data);
    });
}