0

我正在尝试将一些数据从我的 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,我仍然在控制台上看到该过程成功的消息。

我该如何阻止这个?我只希望表单与所有字段的值一起提交。

4

1 回答 1

1

required属性适用于您使用 JavaScript 绕过的标准表单提交。

鉴于您现有的代码分别获取每个字段,最简单的更改可能是循环遍历data您创建的对象中的属性:

for (k in data) {
   if ($.trim(data[k]) === "") {
      alert("All fields must be filled.");
      return false;
   }
}

请注意,我使用了该$.trim()功能,因此用户无法通过输入空格字符来避免您的验证。

于 2013-06-30T06:23:01.810 回答