visualforce页面javascript按钮点击不起作用

visualforce page javascript button click not working

本文关键字:不起作用 按钮 页面 javascript visualforce      更新时间:2023-09-26

我有一个visualforce页面(Salesforce),我试图捕捉用户在文本字段中按下回车键并点击按钮的情况。

这是我的jquery代码:

$(document).ready(function() {
$("#thisPage'':theForm'':siteNumber").keypress(function() { 
    if(window.event){                           
        key = window.event.keyCode;     //IE, chrome
    } 
    else{                           
        key = e.which;     //firefox               
    }
    if(key == 13) {
        $("#thisPage'':theForm'':siteButton").click();                  
    }    
});
});

这很奇怪,我已经验证了密钥等于13,并且它正在进入if语句。我还尝试将.click()操作移动到if键==13条件之上,它会很好地触发。它只是在if键==13的条件下不起作用,我知道它正在进入。

我用这个简单的小提琴重新创造了它的基本功能,但它当然很好:http://jsfiddle.net/2adPe/

感谢您的帮助!

更新:

我已经发现这将工作

function noenter(e){               
if(window.event){                    
    key = window.event.keyCode;     //IE, Chrome            
} 
else{                    
    key = e.which;     //firefox               
}               
if(key == 13) {                    
    document.getElementById('thisPage:theForm:siteButton').click();                                                                         
    return false;               
} 
else{                    
    return true;               
}          
}    

带有

onkeypress="return noenter(event)" 

在文本框上。有没有办法不引人注目地做到这一点??

尝试使用jQuery Attribute Ends With Selector引用元素ID。

像这样:

$("[id$='input1']").on("keypress",function(e) { // e is the current event
    if(e){ 
      key = e.keyCode; // IE, chrome
    }
    else{ 
      key = e.which; // firefox               
    }
    if(key == 13) {
      e.preventDefault(); // prevent a form submit when pressing enter (on IE)
      $("[id$='siteButton']").click(); // simulate a click of the siteButton
    }
});

此外,如果key == 13。否则,单击按钮可能会执行两次。

http://jsfiddle.net/2adPe/3/

终于拿到了!我不得不从.click()之前删除e.preventdefault(),并在末尾添加return false,以阻止默认操作的发生。

$('input[name$="siteNumber"]').keypress(function() { 
    if(window.event){                           
        key = window.event.keyCode;     //IE, chrome
    } 
    else{                           
        key = e.which;     //firefox               
    }
    if(key == 13) {
        $('input[name$="siteButton"]').click(); 
        return false;                      
    }    
});