防止在asp.net输入字段中回车
我的密钥在javascript和asp.net中输入有问题
我有一个这样的控件,带有一个textchanged事件,可以查找,但我想在用户输入时控制它
这就是为什么我创建了这个非常好用的javascript函数。 因为它避免了在任何字符输入处输入回发
function EnterEvent(e) { var keycode = (e.keyCode ? e.keyCode : e.which); if (keycode == 13) { return true; } else { return false } }
然后我想控制TextBox何时有内容,所以我改变了这样的js。
function EnterEvent(e, ctrl) { var keycode = (e.keyCode ? e.keyCode : e.which); if (keycode == 13) { return ctrl.value.length > 2; } else { return false } }
控制
但没有任何反应。 任何时候我进入,页面回发。
我还在加载页面后面的代码中添加了这个
TextBox1.Attributes.Add("onkeypress", "EnterEvent(event, this);"); TextBox1.Attributes.Add("onkeyup", "EnterEvent(event, this);"); TextBox1.Attributes.Add("onkeydown", "EnterEvent(event, this);");
我的页面仍然按回车键进行回发。 我们的想法是,如果至少有3个字符,则停止输入回发。 任何想法或其他方法?
> —————–编辑——————–
我在EnterEvent之前添加了这个函数
$(function () { $(':text').bind('keydown', function (e) { if (e.keyCode == 13) e.preventDefault(); }); });
但它会阻止所有页面中的Enter。 输入不起作用。
> —————– EDIT 2 ——————–
好吧,我成功了! 正如我在之前的评论中所说的那样,我在过去尝试添加一个虚拟按钮控件,然后从文本框转移事件并调用其click事件。 它并不干净,但它有效,而且我很着急。 谢谢大家的回答。 如果有人可以提供帮助,我会很感激。 我会继续回顾这个问题。 谢谢。
function EnterEvent(e, ctrl) { var keycode = (e.keyCode ? e.keyCode : e.which); if (keycode == 13 && ctrl.value.length > 2) { $('[id$=Button1]').click(); } else { return false; } }
有一个类似的需要阻止输入按键(虽然,我不需要考虑输入长度条件,如在这种情况下),并发现这解决了问题…比添加整个脚本块更简单,如果所有你需要do是由于某人在文本区域中按Enter键而停止表单回发。
以为我会分享这个以防其他人只搜索此function。
function EnterEvent(e, ctrl) { var keycode = (e.keyCode ? e.keyCode : e.which); if (keycode == 13 && ctrl.value.length > 2) { return false; } else { return true; } }
尝试:
e.preventDefault();
停止Enter事件。
我建了一个小提琴手:
http://jsfiddle.net/rblaettler/Y3b8F/5/
这是你想要做的吗? 如果您的字符数超过2个,则仅提交。
- 如何在javascript中获取UTC偏移量(在C#中类似于TimeZoneInfo.GetUtcOffset)
- 从代码隐藏中传递JavaScript函数的参数
- 如何在ASP.NET中使用带有图标和格式的JQuery Datepicker
- 从codebehind中的javascript函数中检索值
- 如何在Visual Studio 2008或Visual Studio 2010中设置JavaScript断点
- 访问.cs文件中声明的web方法与ajax中的任何aspx或ascx文件无关(jquery)
- 鼠标移开时关闭AJAX Control Toolkit BallonPopupExtender
- 限制正则表达式中的字符长度
- 如果浏览器关闭/上传取消,如何停止文件传输