Jquery 如何避免在输入中按enter键后重新加载asp页面
我尝试在输入字段(实际上是条形码输入)中捕捉Enter键以取消隐藏按钮。这是我们的工作流程:首先输入一个数字,然后显示一些按钮继续。看起来很简单,但我就是没法用。按Enter键时,页面似乎再次加载,这在firebug中可见。按钮在很短的时间内可见,重新加载会将其重新初始化为隐藏状态 这是我的代码:Jquery 如何避免在输入中按enter键后重新加载asp页面,jquery,asp.net,input,Jquery,Asp.net,Input,我尝试在输入字段(实际上是条形码输入)中捕捉Enter键以取消隐藏按钮。这是我们的工作流程:首先输入一个数字,然后显示一些按钮继续。看起来很简单,但我就是没法用。按Enter键时,页面似乎再次加载,这在firebug中可见。按钮在很短的时间内可见,重新加载会将其重新初始化为隐藏状态 这是我的代码: <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder_Head" runat="Server"> <
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder_Head" runat="Server">
<script>
$(document).ready(function () {
// initialize with invisible borders
_Quant_notQuali = null;
QuantQuali_SetBorders();
$('div#quantqual').hide();
$('input#barcode').val('');
$('input#barcode').keyup(function (e) {
e.preventDefault();
if (e.keyCode === 13) {
$('div#quantqual').show();
}
return false;
});
return;
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder_Body" runat="Server">
<div>
Barcode:
<input id="barcode" type="text" style="font-size: larger;" />
</div>
<div id="quantqual">
<div class="button" id="quant" onclick="_Quant_notQuali = true; QuantQuali_SetBorders();">Kwantitatief</div>
<div class="button" id="quali" onclick="_Quant_notQuali = false; QuantQuali_SetBorders();">Kwalitatief</div>
</div>
$(文档).ready(函数(){
//用不可见的边框初始化
_Quant_notQuali=null;
定量定量;
$('div#quantqual').hide();
$(‘输入#条形码’).val(“”);
$(‘输入#条形码’).keyup(函数(e){
e、 预防默认值();
如果(如keyCode===13){
$('div#quantqual').show();
}
返回false;
});
返回;
});
条形码:
夸塔蒂夫
夸利塔蒂耶夫
为什么在按下/按下Enter键后重新加载页面?或者在show()之后
这可能是因为与ASP系统的交互?(或者母版页?)input
元素没有runat=server
,因为数据稍后将通过一些ajax调用发送到服务器
我完全不知所措……试试这个:
$('input#barcode').keyup(function (e) {
e.preventDefault();
if (e.keyCode == 13) {
//Add this
e.returnValue=false;
e.cancel = true;
$('div#quantqual').show();
return false;
}
});
我发现它时遇到了类似的问题。睡个好觉有什么帮助:-) 首先,提交不是由
元素引起的,因为没有元素。提交是由ASP页面的
元素中的操作
属性引起的。我用这个简单的html页面对此进行了测试:
<html>
<head>
</head>
<body>
<form action="page.aspx">
<div>
Barcode: <input id="barcode" type="text" />
</div>
</form>
</body>
</html>
页面上有提交按钮吗?没有,但ASP系统可能会插入一个?我没有写一个,在FireBug中我没有看到一个,但毕竟ASP页面是一个表单。尝试了这个,没有帮助:-(尝试向
输入#barcode
添加一个.change()事件处理程序,参数表示DOM事件。在那里添加一个preventDefault()。这将在执行val(“”)之前进行)
值更改。作为测试,将keyup()
处理程序回调中的代码替换为justreturn false;
并查看是否仍刷新。我尝试了这两种建议,但都没有帮助。仍在重新加载。您可能需要检查QuantQuali\u setboorders();
并确定它是否设置了某种类型的事件处理程序。此外,正如您在问题中提到的,母版页或父模板是否有处理程序。这些处理程序可能需要返回false;
或preventDefault()
/stopPropogation()
已应用。母版页非常空,只有一个asp:LoginView
控件。此外,查看视图源代码或Firebug,我应该可以看到页面的所有html,并且视图中没有提交。但是我同意asp可能需要提交的地方您可以发布更多的html吗?我编辑了我的解决方案,请尝试。当您进行比较时可能不计算类型,只检查它是否相等。怀疑这是问题所在,但可能是。不起作用:-(现在必须回家,明天我将在常规html非asp页面中尝试JS。谢谢。
<html>
<head>
</head>
<body>
<form action="page.aspx">
<div>
Barcode: <input id="barcode" type="text" />
</div>
</form>
</body>
</html>
$(document).ready(function () {
...
// prevent Submit when pressing Enter key
$(window).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});