gpt4 book ai didi

javascript - 如何处理带有条件的ajax响应文本

转载 作者:行者123 更新时间:2023-11-30 10:50:01 24 4
gpt4 key购买 nike

我已经让我的表单使用 ajax 发布,并且一切正常。就 ajax 而言,它使用 responseText 成功地处理了它的作业。但这并不意味着在我的案例中一切都得到了正确处理。

ajax 正在发布我的表单,该表单运行一个 php 文件以将数据插入我的数据库。成功或失败,都会有一个响应文本,如果所有数据都已插入数据库,则显示“谢谢”,如果失败,则显示“错误:”。

如何根据该 responseText 创建一个 if 条件来处理这种自定义 responseText 错误?或者我可以强制它在响应文本为“Err:”时返回 .ajaxError() 吗?

HTML 格式:

<form method="post" action="contact.php" id="contact">
<fieldset>
<input type="text" id="email" class="required email" name="email" maxlength="30" value="youremail @ example.com" />
<input type="text" id="subject" class="required" name="subject" maxlength="24" value="Enter your subject" />
<textarea id="msg" class="required textarea" name="msg" cols="30" rows="5">Reason for contact.</textarea>
<input type="submit" class="formBtn" value="Punch me an Email" />
</fieldset>
</form>

JQuery:

$(window).load(function(){
$('#contact').ajaxForm({
beforeSubmit:formValidate,
success: showResponse,
clearForm:true
});
});
function formValidate(){
$('#contact').validate({
rules:{
email:{required: true, email:true},
subject:{required: true, minlength: 5},
msg:{required: true, minlength: 50}
},
messages:{
email:'',
subject: '',
msg: ''
},
invalidHandler:function(){
$('div.error').hide();
},
focusInvalid:true,
onfocusout:false,
submitHandler: function() {
$('#contact').ajaxSubmit();
}
});
}
function showResponse(responseText,statusText,xhr,$form){
console.log(responseText);
// alert(responseText);
// $("#contact").toggle('slow');
}

最佳答案

我建议将 dataType: 'json' 属性添加到您的 $.ajaxForm 调用中。然后在你的 php 中而不是返回 'Thanks' 你可以返回:

return json(array('status'=>'success'));

return json(array('status'=>'failed'));

然后在 show-response 中你可以运行类似的东西:

if(responseText.status === 'failed') { // do something })

关于javascript - 如何处理带有条件的ajax响应文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com