【发布时间】: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