Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Jquery 仅允许在填写完所有字段后提交表单_Jquery_Ajax_Forms_Node.js - Fatal编程技术网

Jquery 仅允许在填写完所有字段后提交表单

Jquery 仅允许在填写完所有字段后提交表单,jquery,ajax,forms,node.js,Jquery,Ajax,Forms,Node.js,我正在尝试将一些数据从AJAX表单发送到Node.js服务器 $(function () { $('#submit').click(function (e) { e.preventDefault() // prevents the form from being submitted var data = {}; data.id = $("#id").val(); data.title = $("#title").val(); data.content

我正在尝试将一些数据从AJAX表单发送到Node.js服务器

$(function () {
  $('#submit').click(function (e) {
    e.preventDefault() // prevents the form from being submitted
    var data = {};
    data.id = $("#id").val();
    data.title = $("#title").val();
    data.content = $("#content").val();
    data.author = $("#author").val();
    data.email = $("#email").val();

    $.ajax({
      type: 'POST',
      data: JSON.stringify(data),
      contentType: 'application/json',
      url: '/server',
      success: function (data) {
        console.log('success');
        console.log(JSON.stringify(data));
      }
    });
  });
});
我的问题是,我只希望在填写完所有字段后提交表单,但即使我将
required
放在
input
标签上,我仍然会在控制台上看到消息,表明该过程成功


我该怎么阻止这一切?我只希望表单与所有字段的值一起提交。

required属性适用于标准表单提交,您可以使用JavaScript绕过它

假设您现有的代码分别获取每个字段,最简单的更改可能是在您创建的
data
对象中循环使用属性:

for (k in data) {
   if ($.trim(data[k]) === "") {
      alert("All fields must be filled.");
      return false;
   }
}
请注意,我使用了,因此用户不能通过输入空格字符来避免您的验证