【问题标题】:post method with jquery ajax使用 jquery ajax 发布方法
【发布时间】:2021-08-23 16:15:42
【问题描述】:

大家好,我有以下代码:my code

我正在尝试在 ajax 上做简单的 post 方法,但我有一些困难。

首先,我有 4 个输入(姓名、邮件、电话和国家/地区),通过一些选项和文本区域进行选择。

    <form id="sendMessage">
         <input type="text" name="name" class="name form-control" placeholder="name" required>
         <input type="email" name="mail" class="email form-control" placeholder="mail" required>
         <input type="number" name="phone" class="phone-number form-control" placeholder="phone" 
           required>
         <input type="text" name="country" class="country form-control" placeholder="country" 
           required>
         <select name="theme" required>
           <option value="">choose theme</option>
           <option value="greenColor">green</option>
           <option value="redColor">red</option>
           <option value="blueColor">blue</option>
           <option value="otherColor">something else...</option>
         </select>
         <textarea class="textBody form-control" placeholder="Сообщение" rows="5" name="message" 
           required></textarea>
         <button type="submit" name="submit"  >Send</button>
     </form>

场景如下,当用户填写所有字段时,我想在提交按钮后将所有信息发送到后端但出现问题。

    $("#sendMessage button").on("click", (e) => {
    e.preventDefault();
    let isOk = true;

    let name = $("#sendMessage .name")[0].value;
    if (name) isOk = true;
    isOk = false;

    let email = $("#sendMessage .email")[0].value;
    if (email) isOk = true;
    isOk = false;

    let phoneNumber = $("#sendMessage .phone-number")[0].value;
    if (phoneNumber) isOk = true;
    isOk = false;

    let country = $("#sendMessage .country")[0].value;
    if (country) isOk = true;
    isOk = false;

    let textBody = $("#sendMessage .textBody")[0].value;
    if (textBody) isOk = true;
    isOk = false;

    if (isOk) {
    $.ajax({
      url: "api/Guest/SendEmailForContact",
      method: "POST",
      xhrFields: {
        withCredentials: true
      },
      statusCode: {
        404: function () {
          alert("page not found");
        }
      },
      context: {}
    }).done(function () {
      console.log(":asdfasdfasdf");
    });
    }
  });

请帮我解决这个问题。谢谢

【问题讨论】:

  • 逐行跟踪你的代码,想想每一步发生了什么。 name输入OK会怎样?首先将isOk 设置为true,太好了,这就是您想要的。但是下一个isOk 立即设置为false,无论如何!尝试一些 JS 教程,或者在 SO 上搜索相关问题,您可以阅读大量代码来学习如何处理它。

标签: javascript jquery ajax ajaxform


【解决方案1】:

$.ajax 永远不会运行,因为您在 if 语句之前将 isOk 设置为 false。进行此验证的更好方法是先将 isOk 设置为 true,然后在任何值无效时将其设置为 false。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2018-12-02
    相关资源
    最近更新 更多