event.returnValue=false和return false的用处

测试页面的时候,发现一个bug,在360的兼容模式和Ie10(Ie7、8、9没试)下,return false 之后的链接跳转会继续执行,查了资料,将其改为event.returnValue=false就不会了,特此记录

代码如下:

function btnChangePage() {
    var numPage = $('#custompage');
    var pageTotal = numPage.attr('data-pagetotal');
    var thisVal = numPage.val();
    var caseurl = '';
    var re = /^[0-9]+.?[0-9]*$/;
    if(!re.test(thisVal) || (parseInt(thisVal) < 1) || (parseInt(thisVal) > pageTotal)) {
        alert('请输入有效的页码!');
        return false;
        //window.event.returnValue = false;
    }
    var url = numPage.attr('data-url_format');

    window.location.href = url+"&page_name="+thisVal;

}

当在上述所说的浏览器中输入小于1或者大于分页总数的页数, window.location.href = url+”&page_name=”+thisVal;会执行,然后页面跳转。
下面是改正的解释,说的不对的地方,希望予以改正。

  1. event.returnValue的作用就是:当捕捉到事件(event)时,判断为false,则阻止当前事件继续运行,window.event.returnValue = false;之后的语句将都不会执行。
  2. return false 不是阻止事件继续向顶层元素传播,而是阻止浏览器对事件的默认处理。

解释的不明白的,找找其他资料?

你可能感兴趣的:(js+jquery)