【发布时间】:2020-04-04 11:06:31
【问题描述】:
我有一个简单的表单,它通过 Ajax 调用发布内容。
<form id="NewDataForm">
<label>Name</label>
<input type="text" id="name" name="name" value="" required />
<button id="saveNewData" type="submit" class="btn btn-primary">Save</button>
<div id="errorNewData" class="alert alert-danger text-center" role="alert"></div>
</form>
jQuery 代码:
$('#saveNewData').on('click', function(e){
e.preventDefault();
$('#errorNewData').hide();
if ($('#NewDataForm')[0].checkValidity()) {
$.ajax({
url: '/admin/includes/post.php',
type: 'POST',
data: $('form#NewDataForm').serialize()
})
.done(function(msg) {
alert(msg);
if (msg === 'go') {
// some actions
}else{
$('#errorNewData').show();
$('#errorNewData').html(msg);
}
});
} else {
$('#NewDataForm')[0].reportValidity();
}
});
目前,post.php 仅包含此用于测试目的:
<?php
echo 'go';
?>
但无论 post.php 返回什么内容,它总是显示#errorNewData 内容。
if (msg === 'go') 永远不会为真,即使答案是 go。
但是 alert(msg) 显示 'go',而 #errorNewData 也显示 'go'
【问题讨论】: