Javascript IE8-输入key-won';不要提交我的搜索字段
嘿,伙计们,我有一个搜索字段,当按下回车键时,它不会提交,这个问题只发生在IE8上,其他浏览器都可以正常工作(即使是IE6)。伙计们,我需要他的帮助,在下面找到我的代码Javascript IE8-输入key-won';不要提交我的搜索字段,javascript,html,css,internet-explorer-8,cross-browser,Javascript,Html,Css,Internet Explorer 8,Cross Browser,嘿,伙计们,我有一个搜索字段,当按下回车键时,它不会提交,这个问题只发生在IE8上,其他浏览器都可以正常工作(即使是IE6)。伙计们,我需要他的帮助,在下面找到我的代码 <div class="box-search"> <input type="text" class="text-box" id="text-search" /> <label class="overlabel" for="text-se
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" name="btn-submit" class="btn-go" onclick="javascript:goSearch();return false;" />
</div>
输入关键字
好的,我忘了提到这个表单在一个ASP编码的页面中,这就是为什么它没有包装在表单元素中。这与您有一个
onclick
事件,该事件带有一个对GoSearch
的函数调用和一个附加到“submit”输入类型的return false
有关吗
你能通过goSearch()函数的内容吗?这与你有一个
onclick
事件,该事件带有对goSearch
的函数调用和一个附加到“submit”输入类型的return false
有关吗
是否可以跳过goSearch()函数的内容?您需要在文本框和按钮周围放置一些
标记。像这样
<form method='POST' onsubmit='javascript:goSearch();return false;'>
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="button" value="" name="btn-submit" class="btn-go" onclick="javascript:goSearch();return false;" />
</form>
输入关键字
另一种方法是在文本框上使用keydown事件并检查它是否是enter键
希望这有帮助。您需要在文本框和按钮周围放置一些
标记。像这样
<form method='POST' onsubmit='javascript:goSearch();return false;'>
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="button" value="" name="btn-submit" class="btn-go" onclick="javascript:goSearch();return false;" />
</form>
输入关键字
另一种方法是在文本框上使用keydown事件并检查它是否是enter键
希望这有帮助。如果从提交的事件处理程序中删除“return false;”,会发生什么? 当用户在文本输入字段中点击ENTER时,IE的行为就好像使用了submit按钮,但“false”阻止了事件冒泡 编辑:使用新的ASP信息 请看:他解释了它是如何工作的,所以这里没有任何细节,只是说您需要做的就是将以下内容添加到您的page_load事件中:
Page.RegisterHiddenField("__EVENTTARGET", "MyDefaultButton");
如果从提交的事件处理程序中删除“return false;”,会发生什么? 当用户在文本输入字段中点击ENTER时,IE的行为就好像使用了submit按钮,但“false”阻止了事件冒泡 编辑:使用新的ASP信息 请看:他解释了它是如何工作的,所以这里没有任何细节,只是说您需要做的就是将以下内容添加到您的page_load事件中:
Page.RegisterHiddenField("__EVENTTARGET", "MyDefaultButton");
另一种方法,而不是单击submit按钮上的
onclick
,是这样做
<form action="script.php" method="post" onsubmit="goSearch();return false">
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" name="btn-submit" class="btn-go" />
</div>
</form>
输入关键字
编辑:添加了操作和方法属性。验证需要action属性。另一种方法,而不是单击submit按钮上的
onclick
,是这样做的
<form action="script.php" method="post" onsubmit="goSearch();return false">
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" name="btn-submit" class="btn-go" />
</div>
</form>
输入关键字
编辑:添加了操作和方法属性。验证需要action属性。我发现IE8中有一个bug,有时表单在回车键时无法提交 最好的方法是设置一个事件来处理按下enter键的情况 在jQuery中,您可以执行以下操作:
$("input_box_id").keydown(function(e){
if (e.keyCode == 13) //enter
{
$("btn-submit").click();
}
});
在JavaScript中,它将是:
document.getElementById("input_box_id").onclick = function(e){
var keycode =(window.event) ? event.keyCode : e.keyCode;
if (keycode == 13) //enter
{
document.getElementById("input_box_id").click();
}
};
并将Html更改为:
<form action="url_here" method="post">
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" id="btn-submit" name="btn-submit" class="btn-go" />
</div>
</form>
输入关键字
如果您已经拥有Asp.net表单,请忽略表单标记。我发现IE8中存在一个错误,有时表单无法按enter键提交 最好的方法是设置一个事件来处理按下enter键的情况 在jQuery中,您可以执行以下操作:
$("input_box_id").keydown(function(e){
if (e.keyCode == 13) //enter
{
$("btn-submit").click();
}
});
在JavaScript中,它将是:
document.getElementById("input_box_id").onclick = function(e){
var keycode =(window.event) ? event.keyCode : e.keyCode;
if (keycode == 13) //enter
{
document.getElementById("input_box_id").click();
}
};
并将Html更改为:
<form action="url_here" method="post">
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" id="btn-submit" name="btn-submit" class="btn-go" />
</div>
</form>
输入关键字
如果您已经有Asp.net表单,请忽略表单标签。旧票证,但我想插话:IE8做了以下奇怪的事情:Enter键将提交表单,但任何
<input type="submit" name="MySubmitButton" value="I hope I detect THIS VALUE in POST" />
不会被邮寄的
IE9更改行为并发送值。据我的测试显示,Chrome总是发送值
有一大堆关于“在IE8中输入不提交”的投诉,我觉得其中有很多是导致这种行为的原因。我希望这对他们中的一些人有所帮助。旧票,但我想插话:IE8做了以下奇怪的事情:回车键将提交表单,但任何
<input type="submit" name="MySubmitButton" value="I hope I detect THIS VALUE in POST" />
不会被邮寄的
IE9更改行为并发送值。据我的测试显示,Chrome总是发送值
有一大堆关于“在IE8中输入不提交”的投诉,我觉得其中有很多是导致这种行为的原因。我希望这对他们中的一些人有所帮助。你可以继续从onclick处理程序中删除
javascript:
,这完全没有用。你可以继续从onclick处理程序中删除javascript:
,它在那里完全没有用处。我从代码中删除了return false,但ie8仍然存在相同的问题。我从代码中删除了return false,但ie8仍然存在相同的问题。如果成功,还可以传递表单:onsubmit=“return goSearch(this)”,并在脚本末尾使用return false,如果希望将表单提交到服务器,则返回true成功时返回false似乎有点倒退。那我宁愿回来!goSearch(this)
和在成功时返回true
。并且也传递表单:onsubmit=“return goSearch(this)”,如果成功,则在脚本末尾返回false;如果希望表单在成功时提交到服务器,则返回true似乎有点倒退。那我宁愿回来!goSearch(this)
和在成功时返回true
。可能不应该同时使用onclick和onsubmitIs,这样更好。现在他们可以按enter键或单击按钮。@Znarkus:只调用其中一个(因为返回false
);当“enter”在IE中发送form.submit()时,它在som中发送btn submit.click()