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

时间:2010-07-28 01:45:03

标签: javascript jquery redirect javascript-events form-submit

我有一个网页,我有一个表格。此表单包含一个按钮和一个文本框。单击按钮或提交表单时,我想从文本框中取出文本并将其附加到网址。代码如下所示:

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

问题在于这种方法有时有效,有时需要我使用此URL:

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

我不确定为什么会这样。表单在使用jquery淡入和淡出,这可能是一个问题吗?有没有更好的方法来实现所描述的行为?

谢谢, 本

2 个答案:

答案 0 :(得分: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。)

答案 1 :(得分: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