我有一个小脚本来演示我的问题,这里是test.html页面的javascript代码
<script>
function test(e) {
if(e < 2) {
return;
} else {
return $.ajax({
type: "POST",
url: "test.php",
data: {
e: e
},
success: function (data) {
alert(data);
}
});
}
}
$(document).ready(function () {
$(document).on("click", "#bth", function () {
test(1).done(function () {
alert('done');
});
});
});
</script>
和
<body>
<input type="button" id="bth" value="OK" />
</body>
在test.php中我把
<?php echo $_POST['e']; ?>
我在此行收到了javascript错误:test(1).done(function(){
如果参数不止一个(例如test(2)
),它可以正常工作。
我该如何解决这个问题?
答案 0 :(得分:6)
如果e < 2
,您的功能不会返回任何内容
您无法在.done()
上致电undefined
。
相反,您可以返回预先解析的延迟对象:
return $.Deferred().resolve(someResult)