2012-10-17 13 views
-1
<script type="text/javascript"> 
window.onload = init; 

function init() { 
    var button = document.getElementById("searchbutton"); 
    button.onclick = handleButtonClick; 
} 

function handleButtonClick(e) { 
    var textinput = document.getElementById("searchinput"); 
    var searchterm = textinput.value; 
    window.location.assign("http://www.google.com/testing/" + searchterm) 
} 
</script> 

<input type="text" name="search" id="searchinput"> 
<button type="button" id="searchbutton">Ara</button> 

該代碼塊接受用戶輸入並隨之進入一個新頁面。如何使用回車鍵加載新頁面?

當用戶按下回車鍵時,我想用該提交按鈕做同樣的事情。我在網上找到了一些東西,但它們都與jquery有關。

+0

如果你不介意放棄對IE的支持,可以綁定'[輸入#searchinput] .onchange'到'handleButtonClick()'太;如果你不喜歡這個,聽''input#searchinput] .onkeyup'並檢查是否按下[Enter]'(keyCode:13)。 – Passerby

+0

你能給完整的代碼嗎? – Imrahil

+0

好的,我添加了一個答案。 – Passerby

回答

0

我想你應該使用一個標籤,提交按鈕,並使用窗體的.onSubmit()事件。這個事件將在你點擊和當你點擊Return(Enter)鍵時觸發。

一個例子JS代碼(的jsfiddle測試,只是修改了一下你的代碼中添加一種形式):

<script type="text/javascript"> 
function processForm(e) { 
    if (e.preventDefault) e.preventDefault(); 

    var textinput = document.getElementById("searchinput"); 
    var searchterm = textinput.value; 
    window.location.assign("http://www.urbandictionary.com/define.php?term=" + searchterm) 

    return false; // Block form 
} 

var form = document.getElementById('searchForm'); 

if (form.attachEvent) { form.attachEvent("submit", processForm); } 
else { form.addEventListener("submit", processForm); }​ 
</script> 
<form id="searchForm"> 
<input type="text" name="search" id="searchinput"> 
<input type="submit"> 
</form>​ 

你可以看這個代碼住在這裏:http://jsfiddle.net/UD8FN/

雨果,

+0

我將用它來擴展Opera。這將是這樣的; http://www.urbandictionary.com/define.php?term=將是主要的網址,用戶的輸入將會到達網址的結尾。你有什麼建議嗎? – Imrahil

+0

是的,我會編輯我的實際答案來向你展示。 – pistache

+0

好吧,我會在你做完之後做出正確答案。 – Imrahil

0
<input type="text" name="search" id="searchinput" onkeydown="if (event.keyCode == 13) handleButtonClick()"> 
+0

我不想使用內聯腳本,如何在腳本標記中使用它? – Imrahil

1

從評論延伸:

對IE不友好的解決方案:

function init() { 
    var button = document.getElementById("searchbutton"); 
    button.onclick = handleButtonClick; 
    document.getElementById("searchinput").onchange=handleButtonClick; 
} 

常見的解決方案:

function init() { 
    var button = document.getElementById("searchbutton"); 
    button.onclick = handleButtonClick; 
    document.getElementById("searchinput").onkeyup=function(e){ 
     e=e?e:event; 
     if(e.keyCode==13) handleButtonClick(); 
    }; 
} 
+0

你能解釋你在代碼中做了什麼? – Imrahil

+0

@Imrahil在「IE不友好」版本中,我告訴'[input#searchinput]'處理'onchange'事件,就好像單擊[button#searchbuton]一樣;在常見的版本中,我告訴'[input#searchinput]'監聽'onkeyup'事件,並查看是否按下了[Enter](keyCode = 13),如果是,請運行'handleButtonClick()' 。 – Passerby

+0

爲什麼e = e?e:事件;呆在那裏?它沒有它的工作。 – Imrahil