【发布时间】:2012-10-02 15:33:49
【问题描述】:
我在表单提交事件处理程序中遇到问题。这是我的代码 我正在使用 Jquery 1.4.2
<FORM id="mysearchform" method="get" action="http://www.abc.com/results.aspx?q=" target=_blank sizcache="1694" sizset="0" jQuery1347023310528="3">
<DIV class="search">
<span><span>
<LABEL class=hide for=q>Search:</LABEL>
<INPUT accessKey=S id="a" class="abc" name="a" maxLength="50" value="Images" size=69 type="search" autocomplete="off" selectionStart="0" jQuery1347023310528="108">
<INPUT style="WIDTH: 185px; HEIGHT: 33px" class="img" title="Search" alt="Search" value="Search" src="http://dummyimage.com/180x35" type=image>
<INPUT name="form" value="abcd" type="hidden"></SPAN></SPAN></DIV>
</FORM>
我有一个用于 mysearchform 的事件处理程序,用于更改表单输入元素的值和 id 为“a”的文本框的值,以便在提交表单时我可以更改文本框的值,即(添加附加值)
$("#mysearchform").submit(mysubmitHandler);
在 mysubmitHandler 中,我正在更改“a”和表单输入元素的值。此代码在 IE9、FF 4.0 和最新版本的 chrome 中运行良好。但是在 IE 7 和 IE8 中,在进入“mysubmitHandler”之前,新窗口正在打开(我在新窗口中显示搜索结果)。所以我的更改没有附加到搜索窗口上的查询字符串。
在其他浏览器中,“mysubmitHandler”首先触发,然后新窗口打开。
【问题讨论】:
-
你能发布你的jQuery代码吗?
-
var searchForm=$("#mysearchform"); searchForm.submit(onSubmit);函数 onSubmit() { var $formElement=$("input[name=form]",$(this)); $formElement.attr("value",($("#a").val() +"search"));但是这段代码并不重要,因为它是在表单提交之后调用的。这么说,这意味着在选项卡中打开了新页面,然后我的处理程序被调用,这并没有反映我的更改。
-
jQuery 1.4.2,复古风格....
-
我不是在谈论复古风格。如果您的问题是哪个版本,那么我使用的是 1.4.2 min js
-
我只是在评论您使用的 jquery 版本,它很旧或“复古”