我的最小表单只允许'Enter'按键,我希望它在点击" envoy "链接时表现得一样。我已经寻找了Javascript/JQuery的解决方案,但没有一个工作。
你知道我如何"模拟"输入键点击链接吗?
这是我的网站与我的表单: 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文件中的A链接:
<p id="envoyer"><a id="returnkey" href="#">Envoyer</a></p>
为什么不将函数也分配给按钮呢?
$( "#returnkey" ).on( "click", function(ev) {
ev.preventDefault();
self._nextQuestion();
});
一旦回车键被按下,你就可以触发元素上的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 ");
}
// +++++ 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;
}