我有一個按鈕,<input type="button" name="button">
當我點擊它,我從另一個輸入文本<input type="text" name="btxt">
來,做一些無關緊要的動作在這個問題上的JavaScript提交的值,提交/模擬按鍵HTML
問:有沒有可能我通過按下鍵盤上的返回而不是點擊按鈕來觸發此javascript。
注:這些輸入沒有內部形狀的標籤
我有一個按鈕,<input type="button" name="button">
當我點擊它,我從另一個輸入文本<input type="text" name="btxt">
來,做一些無關緊要的動作在這個問題上的JavaScript提交的值,提交/模擬按鍵HTML
問:有沒有可能我通過按下鍵盤上的返回而不是點擊按鈕來觸發此javascript。
注:這些輸入沒有內部形狀的標籤
這裏是完全工作的例子(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>
好了,你可以用形式輕鬆完成(不具有實際提交):
<form onsubmit="return yourAction();">
<input type="text" name="text" />
<button type="submit" name="button">Button</button>
</form>
和yourAction()
他沒有形式標籤圍繞輸入文字 – TeKapa 2009-12-01 16:28:00
Upvoted這個答案,因爲如果文本字段是主動控制,這也會觸發按鈕,這通常是你所期望的。此方法還可以添加服務器端按鈕點擊處理,以便您可以支持沒有JavaScript的用戶。我也相信,這個解決方案是最好的網站訪問。 – 2009-12-01 16:31:47
@TeKapa:Gandalf StormCrow沒有說它不允許和/或可能添加表單標籤。我會推薦這個解決方案作爲答案。 – 2009-12-01 16:37:23
只是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);
}
輸入類型=「文本」? – 2009-12-01 16:36:48
是的。 然後當你輸入數值時,按回車鍵,它會調用你想要的功能 – TeKapa 2009-12-01 16:42:20
您需要捕獲的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("Clicked!");" />
</div>
你需要JavaScript函數是:
function trapReturn(event) {
if (event.keyCode == 13) {
var myButton = document.getElementById("myButton");
myButton.click();
}
}
你想按當你在打字輸入的德文本的價值迴歸? – TeKapa 2009-12-01 16:20:07