$(function(){
var a=document.getElementById('text_editor_textarea'),regEx=/^\s*$/,
updateOrig = function() {
var sc = $(a).data('sceditor');
if(sc){
sc.bind('keypress', sc.updateOriginal);
sc.blur(sc.updateOriginal);
}else {
setTimeout(updateOrig , 200);
}
};
updateOrig();
if(a.value !== "" && regEx.test(a.value) ){
window.onbeforeunload = function(){
return "You have a post waiting to be submitted";
};
}
});
此代码应检查a
中是否有数据,如果有onbeforeunload,则应提示警报。它的工作原理除外,即使textarea中没有数据,它仍然会被提示。我在这里做错了吗?
答案 0 :(得分:1)
只需在此a.value !== ""
块内a.value !== null || a.value !== ""
代替if
:
if (a.value !== null || a.value !== "") {
window.onbeforeunload = function () {
return "You have a post waiting to be submitted";
};
}
另外,将if
和事件函数赋值转换为:
window.onbeforeunload = function () {
if (a.value !== "") {
return "You have a post waiting to be submitted";
}
};
我以前没有意识到这一点,但只有在页面加载时才会调用你的消息,否则分配就不会发生,因为当你第一次打开页面时textarea会为空。