2009-12-01 95 views
0

我有一个按钮,<input type="button" name="button">当我点击它,我从另一个输入文本<input type="text" name="btxt">来,做一些无关紧要的动作在这个问题上的JavaScript提交的值,提交/模拟按键HTML

问:有没有可能我通过按下键盘上的返回而不是点击按钮来触发此javascript。

注:这些输入没有内部形状的标签

+0

你想按当你在打字输入的德文本的价值回归? – TeKapa 2009-12-01 16:20:07

回答

-1

这里是完全工作的例子(FF 3.5测试),使用JS库一样,如果你需要更多的可移植性jQuery的火灾事件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
<title>Onkeypress Test</title> 
<script language="javascript"> 
function keyDowns(event) { 
    if (event.keyCode == 13) { 
     // If you are using jQuery just write this: 
      // $('#testbutton').trigger('click'); 
      fireClickEvent(document.getElementById('testbutton')); 
    } 
} 
// Event firing is not portable 
function fireClickEvent(control) { 
    if (document.all) { 
     control.fireEvent("onclick"); 
    } else { 
     var clickEvent = window.document.createEvent("MouseEvent"); 
     clickEvent.initEvent("click", false, true); 
     control.dispatchEvent(clickEvent); 
    } 
} 
</script> 
</head> 
<body onkeydown="keyDowns(event);"> 
<input type="button" name="button" value="Test" id="testbutton" onclick="alert('Clicked to me, you can do whatever')" /> 
</body> 
</html> 
+0

输入类型按钮有onkeydown ????? – TeKapa 2009-12-01 16:27:27

+0

为什么不呢? “onkeydown”是一个事件,如果由浏览器自动支持按钮。 – 2009-12-01 16:36:07

+0

是的,但你必须专注于按钮,然后按回车触发它 – TeKapa 2009-12-01 16:40:12

2

好了,你可以用形式轻松完成(不具有实际提交):

<form onsubmit="return yourAction();"> 
    <input type="text" name="text" /> 
    <button type="submit" name="button">Button</button> 
</form> 

yourAction()

+0

他没有形式标签围绕输入文字 – TeKapa 2009-12-01 16:28:00

+0

Upvoted这个答案,因为如果文本字段是主动控制,这也会触发按钮,这通常是你所期望的。此方法还可以添加服务器端按钮点击处理,以便您可以支持没有JavaScript的用户。我也相信,这个解决方案是最好的网站访问。 – 2009-12-01 16:31:47

+0

@TeKapa:Gandalf StormCrow没有说它不允许和/或可能添加表单标签。我会推荐这个解决方案作为答案。 – 2009-12-01 16:37:23

0

只是return false;你不需要你输入按钮。

试试这样说:

<input type="text" name="btxt" onkeypress="submitValue(this.value)"> 

function submitValue(value) 
{ 
    var key; 

    if(event.keyCode) 
    key= event.keyCode; 
    else if(event.wich) 
    key=event.wich; 

    if(key==13) 
    callFunction(value); 
} 
+0

输入类型=“文本”? – 2009-12-01 16:36:48

+0

是的。 然后当你输入数值时,按回车键,它会调用你想要的功能 – TeKapa 2009-12-01 16:42:20

0

您需要捕获的onkeydown事件。我不知道你想把这个活动扩展到整个网页还是只是一个部分?

无论如何,假设您想让onkeydown事件发生在div标签中的所有内容中,例如,

<div id="keyTrapper" onkeydown="trapReturn(event);"> 
    <input type="text" name="myText" id="myText" /> 
    <input type="button" name="button" id="myButton" onclick="alert(&quot;Clicked!&quot;);" /> 
</div> 

你需要JavaScript函数是:

function trapReturn(event) { 
     if (event.keyCode == 13) { 
      var myButton = document.getElementById("myButton"); 
      myButton.click(); 
     } 
    }