1

我有以下 javascript preventdefault 问题。我不太擅长 javascript,但这是我的代码。event.preventDefault不起作用,但是如果我替换为,alert("SOMETEXT")它会显示警报。

function changecartitemquantitykeydown(itemid,event) {
// Allow: backspace, delete, tab, escape, and enter
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
     // Allow: Ctrl+A
    (event.keyCode == 65 && event.ctrlKey === true) || 
     // Allow: home, end, left, right
    (event.keyCode >= 35 && event.keyCode <= 39)) {
         // let it happen, don't do anything
         return;
}
else {
    // Ensure that it is a number and stop the keypress
    if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) || (this.value.length == 0 && event.keyCode == 48)) {
        event.preventDefault(); <===== This is not happening
    }   
}
}
4

2 回答 2

1

我使用了这个并且它有效。

function changecartitemquantitykeydown(event) {
// Allow: backspace, delete, tab, escape, and enter
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
     // Allow: Ctrl+A
    (event.keyCode == 65 && event.ctrlKey === true) || 
     // Allow: home, end, left, right
    (event.keyCode >= 35 && event.keyCode <= 39)) {
         // let it happen, don't do anything
         return;
}
else {
    // Ensure that it is a number and stop the keypress
    if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) || (this.value.length == 0 && event.keyCode == 48)) {
        //cancelDefaultAction(event);           
        var evt = event ? event:window.event;
        if (evt.preventDefault) {
            evt.preventDefault();
        }
        evt.returnValue = false;
        return false;   
    }   
}

}

于 2013-04-25T07:50:33.183 回答
0

我认为您的问题在于您在函数“changecartitemquantitykeydown”中有多个参数。如果这是事件回调函数,那么第一个参数应该是事件。如果你调用 preventDefault() ,一切都应该没问题。比你应该想办法在那个函数中获得你想要的 itemid 。

于 2013-04-25T07:31:31.467 回答