首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onbeforeunload函数不能正常工作

问onbeforeunload函数不能正常工作
EN

Stack Overflow用户
提问于 2013-07-23 06:50:16
回答 1查看 183关注 0票数 0
代码语言:javascript
复制
 $(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中是否有数据,如果有,则应提示警报。它是有效的,除非即使文本区中没有数据,它仍然会被提示。我是不是做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 07:04:01

只需在此if块中执行a.value !== ""而不是a.value !== null || a.value !== "":

代码语言:javascript
复制
if (a.value !== null || a.value !== "") {
    window.onbeforeunload = function () {
        return "You have a post waiting to be submitted";
    };
}

另外,将if和事件函数赋值翻转为:

代码语言:javascript
复制
window.onbeforeunload = function () {
    if (a.value !== "") {
        return "You have a post waiting to be submitted";
    }
};

我之前没有意识到这一点,但是只有在页面加载时才会调用你的消息,否则赋值就不会发生,因为当你第一次打开页面时,textarea将是空的。

jsFiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17798765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档