gpt4 book ai didi

c# - 防止在 asp.net 输入字段中回车

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:25:19 25 4
gpt4 key购买 nike

我在 javascript 和 asp.net 中输入键有问题

我有一个像这样的控件,它带有一个 textchanged 事件,它可以进行查找,但我想在用户输入时控制它

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event)" AutoPostBack="true" OnTextChanged="TextBox1_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
}
}

控制

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event, this)" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged" />

但是没有任何反应。每当我执行 Enter 时,页面回发。

我还在加载页面的代码后面添加了这个

            TextBox1.Attributes.Add("onkeypress", "EnterEvent(event, this);");
TextBox1.Attributes.Add("onkeyup", "EnterEvent(event, this);");
TextBox1.Attributes.Add("onkeydown", "EnterEvent(event, this);");

我的页面仍在按 Enter 键进行回传。这个想法是如果至少有 3 个字符,则停止 Enter 回发。有什么想法或其他方法吗?

> ----------------编辑--------------------

我在 EnterEvent 之前添加了这个函数

    $(function () {
$(':text').bind('keydown', function (e) {
if (e.keyCode == 13)
e.preventDefault();
});
});

但它阻止了所有页面的回车。输入根本不起作用。

> ----------------编辑 2--------------------

好吧,我成功了!正如我在之前的评论中所说,我像过去一样尝试添加一个虚拟按钮控件,然后从文本框中传输事件并调用其点击事件。 它一点也不干净,但它可以工作而且我很着急。谢谢大家的回答。如果有人仍然可以提供帮助,我将不胜感激。我会继续审查这个问题。谢谢。

    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;
}
}

<asp:TextBox ID="TextBox1" runat="server" onkeyup="EnterEvent(event, this)" />
<asp:Button ID="Button1" runat="server" OnClick="TextBox1_TextChanged" style="visibility:hidden;width:0;"/>

最佳答案

有类似的需要来防止输入按键(虽然,我不需要像在这种情况下那样考虑输入长度条件)并发现这解决了问题......比添加整个脚本 block 更简单您需要做的是停止由于有人在文本区域中按下回车而导致的表单回发。

<asp:TextBox ID="tb_Input" runat="server" onkeypress="return event.keyCode != 13;"></asp:TextBox>

我想我会分享这个以防其他人只搜索此功能。

关于c# - 防止在 asp.net 输入字段中回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com