使用Javascript重定向用户表单提交时出现问题提交

问题描述:

我有一个网页,我有一个表单。此表单包含一个按钮和一个文本框。当单击按钮或提交表单时,我想从文本框中获取文本并将其附加到网址。代码如下所示:使用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淡入淡出,这可能是一个问题吗?有没有更好的方法来实现所描述的行为?

感谢, 本

添加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

当用户点击提交按钮时,会在执行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