【发布时间】:2016-07-06 10:19:58
【问题描述】:
我准备了一个由 Jquery 和 PHP 支持的 HTML 表单。表单在 PHp 中给出了正确的输出,但是当表单提交时,它没有显示成功消息并且没有让字段为空。代码如下:
function sendContact() {
event.preventDefault();
var valid;
valid = validateContact();
if (valid) {
jQuery.ajax({
// input submisssion though Ajax
url: "xxxx.php",
data: 'userName=' + $("#userName").val() + '&userEmail=' + $("#userEmail").val() + '&subject=' + $("#subject").val() + '&content=' + $(content).val(),
type: "POST",
success: function (data) {
// Thankyou message on sucessful submission.
$("#mail-status").html(data);
$('#mail-status').show();
// Clear the form.
$('#userName').val('');
$('#userEmail').val('');
$('#content').val('');
},
error: function () {
}
});
}
}
//error checking
function validateContact() {
var valid = true;
$(".InputBox").css('background-color', '');
$(".info").html('');
if (!$("#userName").val()) {
$("#userName-info").html("(required)");
$("#userName").css('background-color', '#FFFFDF');
valid = false;
}
if (!$("#userEmail").val()) {
$("#userEmail-info").html("(required)");
$("#userEmail").css('background-color', '#FFFFDF');
valid = false;
}
if (!$("#userEmail").val().match(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/)) {
$("#userEmail-info").html("(invalid)");
$("#userEmail").css('background-color', '#FFFFDF');
valid = false;
}
if (!$("#content").val()) {
$("#content-info").html("(required)");
$("#content").css('background-color', '#FFFFDF');
valid = false;
}
return valid;
}
使用的 AJAX 库是:https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript HTML 代码是:
<div id="frmContact">
<div id="mail-status" style="display: none;">Thanking you.</div>
<label style="padding-top:20px;">Name</label><span id="userName-info" class="info"></span><br/>
<input type="text" name="userName" id="userName" class="InputBox"><br>
<label>Email</label><span id="userEmail-info" class="info"></span><br/>
<input type="text" name="userEmail" id="userEmail" class="InputBox"><br/>
<label>Content</label><span id="content-info" class="info"></span><br/>
<textarea name="content" id="content" class="InputBox" cols="25" rows="6"></textarea><br/>
<button name="submit" class="btnAction" onClick="sendContact();">Send</button>
</div>
我检查了没有网站并在谷歌上搜索了正确的代码但找不到?你能找出正确的吗?
【问题讨论】:
-
在浏览器控制台中你得到什么消息?你能在你的ajax调用中加入一个console.log('message'),然后看看哪个消息会打印在控制台中吗?
-
显示 cosole 消息:XMLHttpRequest cannot load xxxx.php。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'null'。
-
那么 ajax 请求是如何在后端提交的。它是否存储您在后端传递的数据?
-
我通过电子邮件中的 PHP 代码获取数据
标签: javascript jquery html ajax