以下代码非常简单。基本上,如果变量" ret"返回一个值,如果值为"则失败"它应该发布警报:"触发2"。但问题是IF语句。它触发警报:"触发1"当条件语句出现时,它会跳过它。
我想知道我做错了什么。谢谢。
$(function() {
var body = $(document).find("body");
body.on("submit", "#form-user-profile", function (e) {
var data = $(this).serialize();
var url = $(this).attr("action");
$.post(url, data, function(ret) {
alert("Trigger 1"); // Triggers alert
if (ret == "fail") {
alert("Trigger 2"); // does not trigger alert
}
});
return false;
});
});
答案 0 :(得分:1)
如果响应实际上是fail
,则问题很可能是响应周围的一些空白,导致if语句评估为false。这可以通过修改响应来解决:
if ($.trim(ret) == "fail") {
答案 1 :(得分:1)
如果代码实际上正在运行,您应该可以使用Chrome或Firefox开发工具查看帖子URL中的响应标头。这应该会给你实际的响应,并帮助你调试答案,我想它只是返回一些接近你所拥有的东西,但不完全是你拥有的东西。