2010-07-28 77 views
2

我有一個網頁,我有一個表單。此表單包含一個按鈕和一個文本框。當單擊按鈕或提交表單時,我想從文本框中獲取文本並將其附加到網址。代碼如下所示:使用Javascript重定向用戶表單提交時出現問題提交

<form 
name="askaquestion" 
id="ask-a-question" 
onSubmit="window.location.href='http://www.someurl.com/app/' + document.askaquestion.question_ask.value" 
    > 
<input 
    type="submit" 
    name="submit_question" 
    value="Submit" 
    class="submit" 
    onClick="window.location.href='http://www.someurl.com/app/' + document.askaquestion.question_ask.value" 
/> 
<input 
    type="text" 
    name="question_ask" 
    value="What's Your Question?" 
    class="inputsmall" 
    id="ask_us_a_question_textbox" 
/> 
    </form> 

的問題是,這個作品有時,有時帶我到這個網址:

http://dev/fs?submit_question=Submit&question_ask=help&hiddenInputToUpdateATBuffer_CommonToolkitScripts=1# 

我不知道爲什麼會這樣。表單在使用jquery淡入淡出,這可能是一個問題嗎?有沒有更好的方法來實現所描述的行爲?

感謝, 本

回答

3

添加return false;onSubmit

onSubmit="window.location.href='http://www.someurl.com/app/' + document.askaquestion.question_ask.value; return false;" 

這將停止表單提交(這就是爲什麼你有http://dev/fs?submit_question... - 這表明你的頁面被命名爲fs)。

+0

+1福氣! – Reigel 2010-07-28 02:05:17

+0

這很好,謝謝! – b3n 2010-07-28 02:07:09

+0

@ b3n - 沒問題。 :) @Reigel - 謝謝。 – 2010-07-28 02:10:41

0

當用戶點擊提交按鈕時,會在執行onClick操作後觸發「提交」操作。爲防止提交行爲發生,您需要按照Gert所說的做法,在<input onClick="return false"><form onSubmit="return false">上返回false。

爲什麼你不使用<form action="http://www.someurl.com/app/">,所以數據將被髮送到你指定的網址?

如果您確實希望將數據發送到兩個不同的地方,最好在第一個處理程序中執行第二組請求,即表單操作指定的內容。

一些有用的鏈接:
http://www.w3schools.com/tags/tag_form.asp
http://bytes.com/topic/javascript/answers/809181-noobie-onclick-confirm-return-false