【发布时间】:2014-05-31 18:15:23
【问题描述】:
好的,所以我一直在寻找可以执行此操作的一段代码,但没有什么适用于我的情况。
我的问题:我试图阻止表单在按下“ENTER”键时提交,但允许表单内的我的搜索脚本在按下 Enter 键时提交。
我发现的是阻止 Enter 键期间的脚本,或者该脚本不起作用,因为我认为我使用 <button> 而不是 <input> 作为我的提交按钮,我不是真的。
我的表格
<form action="" method="post" onsubmit="return false;" id="myform">
我的 javascript 用于我的搜索
function showSub(str) {
var xmlhttp;
if (str=="") {
document.getElementById("txtSub").innerHTML="";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtSub").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","findLogo.php?q="+encodeURIComponent(str),true);
xmlhttp.send();
}
$(document).on('change', '#searchText', function() {
// Get the search text
var searchText = $(this).val();
// Make sure it isn't empty
if (searchText.length > 0) {
// Send the update request
showSub(searchText);
}
});
我的搜索输入
<input type="text" id="searchText" value="" />
<div id="txtSub"></div>
我的提交按钮
<input type="hidden" value="Post" name="submit" />
<button type="submit" style="height:33px; width:50px">
<img src="../css/images/plus_25.png" />
</button>
我的 java-script 后提交脚本
<script type="text/javascript">
$(function(){
$('button[type=submit]').click(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "postadd.php",
data: $("#myform").serialize(),
beforeSend: function(){
$('#result').html('<div class="success"><img src="../images/loading-blue.gif" width="25" /></div>');
},
success: function(data){
$('#result').html(data);
$('html, body').animate({scrollTop:$(document).height()}, 'slow');
//document.getElementById('footer').scrollIntoView();
}
});
});
});
【问题讨论】:
-
不剩下表格是什么意思
-
我有一个表单本身的搜索脚本,我想在按下回车键时执行搜索。
-
我不明白,该表单永远不会被提交,因为您在表单的内联 onsubmit 中返回 false,那么您在这里真正想要做什么?
-
返回 false 用于我的 ajax 脚本,该脚本在另一个页面上提交表单。一旦按下
<button>,它就会将其发送到postadd.php。所以页面不会转到另一个页面,它会停留在同一页面上。我的表单现在的工作方式是任何文本字段,当您按下回车键时,会触发提交按钮并导致表单出错。我想阻止表单在物理按下回车键时提交,但不阻止在我的搜索字段输入中使用回车键。 -
大多数脚本现在只是阻止所有表单文本字段使用 enter 并解决了他们的问题,但我的表单上有一个搜索输入,我想让用户按 enter 以完成他们的搜索。所以在文本字段中允许输入键,但不允许提交表单本身。
标签: javascript jquery forms preventdefault enter