2014-06-08 70 views
0

我最小的表單只允許「Enter」鍵擊,並且我希望它在點擊「Envoyer」鏈接時表現相同。我查找過Javascript/JQuery解決方案,但都沒有成功。當<a>鏈接點擊時模擬「Enter」鍵

你知道我該如何「模擬」在鏈接點擊輸入擊鍵?

這裏是我的地盤我的形式http://raphaelmartin.olympe.in/pc/fruit.html

在JS文件有趣的部分:

// pressing enter will jump to next question 
     document.addEventListener('keydown', function(ev) { 
      var keyCode = ev.keyCode || ev.which; 
      // enter 
      if(keyCode === 13) { 
       ev.preventDefault(); 
       self._nextQuestion(); 
      } 
     }); 

這裏是我的HTML文件鏈接:

<p id="envoyer"><a id="returnkey" href="#">Envoyer</a></p> 
+0

類似[this](http://jsfiddle.net/chridam/R4mFs/)? – chridam

+0

@chridam謝謝你的回答。我剛剛在一個頁面上測試了你的代碼:raphaelmartin.olympe.in/pc/marie.html,但它似乎沒有工作:/有什麼不對? – cheezburger

回答

0

爲什麼不將該功能分配給按鈕?

$("#returnkey").on("click", function(ev) { 
    ev.preventDefault(); 
    self._nextQuestion(); 
}); 
+0

謝謝你的回答!不幸的是,它似乎沒有工作。我把你的代碼放在我的文件末尾,但我做錯了嗎? > http://raphaelmartin.olympe.in/pc/fruit.html – cheezburger

-2
// +++++ attach an event handler 
function AttachEventHandler(X00,X01,X02,X03) 
// X00 pointer of object 
// X01 kind of event, String e.g. 'mouseover' (not 'onmouseover') 
// X02 pointer of function of handler 
// param e for parsing an event 
//  e.g. keyDownTextField (e) 
//    { 
//    var keyCode = e.keyCode; 
//    //... 
//    } 
// X03 bubbling flag 
//  true Capturing by handler 
//  same value for DetachEventHandler() 
{ 
var X04=false;   
X04=(X00!=null); 
if(X04){X04=(X01!=null);} 
if(X04){X04=(X02!=null);} 
if(X04){X04=(X01!='');} 
if(X04) 
{ 
    if(X00.attachEvent) 
    { 
    X04=X00.attachEvent('on'+X01,X02); 
    } 
    else 
    { 
    if(X00.addEventListener) 
    { 
    X00.addEventListener(X01,X02,X03); 
    X04=true; 
    } 
    else{X04=false;} 
    } 
} 

return X04; 
} 

// +++++ detach an event handler 
function DetachEventHandler(X00,X01,X02,X03) 
// X00 pointer of object 
// X01 kind of event, String e.g. 'mouseover' (not 'onmouseover') 
// X02 pointer of function of handler 
// param e for parsing an event 
//  e.g. keyDownTextField (e) 
//    { 
//    var keyCode = e.keyCode; 
//    //... 
//    } 
// X03 bubbling flag 
//  true Capturing by handler 
//  same value for AttachEventHandler() 
{ 
var X04=false;   
X04=(X00!=null); 
if(X04){X04=(X01!=null);} 
if(X04){X04=(X02!=null);} 
if(X04){X04=(X01!='');} 
if(X04) 
{ 
    if(X00.detachEvent) 
    { 
    X04=X00.detachEvent('on'+X01,X02); 
    } 
    else 
    { 
    if(X00.removeEventListener) 
    { 
    X00.removeEventListener(X01,X02,X03); 
    X04=true; 
    } 
    else{X04=false;} 
    } 
} 

return X04; 
} 
+1

'X00,X01,X02,X03,X04' --- o_O。真? – zerkms

0

您可以在元素上觸發一個click事件一旦進入按下因此,你只需要一個事件處理

//your return key link 
    var ret = document.getElementById("returnkey") 

    //handling key presses 
    document.addEventListener('keydown', function(ev){ if (ev.keyCode || ev.which == 13) { 
       //trigger a click event on the link if enter pressed 
       ret.click(); } }, false); 

    //handle the click event on the link 
    ret.addEventListener('click', handler, false); 


function handler(ev) { 
    ev.stopPropagation(); 
    ev.preventDefault(); 
    //call next question function 
    //self._nextQuestion(); 

    alert(" you clicked me "); 

} 
相關問題