【问题标题】:Calling $.ajax inside form validator在表单验证器中调用 $.ajax
【发布时间】:2017-11-02 13:26:42
【问题描述】:

如何在 jQuery validate 的 submitHandler() 中编写 $.ajax() 调用?下面是我的代码。我只有一个文本是Empname

$('#FormSubmit').validate({
  rules: {
    EmpName: {
      required: true,
      minlength: 5,
      maxlength: 10
    },
    meassages: {
      EmpName: {
        required: function() {
          return $('#lblName').text('Name Req min2 max15');
        }
        submitHandler: function(FormSubmit) {
          $.ajax({
            url: "http://localhost:10948/Api/Home/PostData",
            method: "POST",
            contentType: 'application/x-www-form-urlencoded',
            success: function() {

            }
          })
        },
<form id="FormSubmit" method="post">
  <div class="form-horizontal">
    <div class="form-group">
      <b>EmpName</b><input type="text" name="EmpName" required />
      <span id="lblName"></span>
    </div>
  </div>
  <input type="submit" value="Submit" />
</form>

它没有处理我的url,而且它给了我一个错误:

HTTP 错误 405.0 - 方法不允许

【问题讨论】:

  • ajax $ 调用在哪里?
  • 放到submitHandler回调中
  • @Alvaro 我刚刚更新了我的代码请查看

标签: jquery ajax jquery-validate


【解决方案1】:

首先注意你有几个语法问题,比如没有正确关闭对象,messages 输入错误,required 消息需要返回一个字符串值。

其次,submitHandler 只是一个在表单有效时执行的函数。您需要将实际的$.ajax 逻辑放入其中,而不仅仅是请求参数:

$('#FormSubmit').validate({
  rules: {
    EmpName: {
      required: true,
      minlength: 5,
      maxlength: 10
    }
  },
  messages: {
    EmpName: {
      required: 'Name Req min2 max15'
    }
  },
  submitHandler: function(form) {
    $.ajax({
      url: "http://localhost:10948/Api/Home/PostData",
      method: "POST",
      data: $(form).serialize(),
      success: function(response) {
        console.log('it worked!');
        console.log(response);
      }
    });
  }
});

【讨论】:

  • ...这就是这段代码正在做的事情。如果它不起作用,请检查控制台是否有错误
  • 收到错误为 HTTP 错误 405.0 - 方法不允许
  • 在哪种情况下,您确定 API 支持对该端点的 POST 请求?尝试 GET 代替。在任何一种情况下,这都是一个单独的问题,因为显然是在提出请求。我建议你提出一个关于它的新问题,确保你也包含你的 API 代码。
  • 我装饰了它的 [HttpPost]
  • 您使用的是 jQuery v1.9 还是更新版本? method 从那时起仅作为属性添加。试试type: 'POST'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多