asp.net 文本区域换行并防止返回键回发

asp.net textarea line feed and preventing postback on return key

本文关键字:返回 net 文本 区域 换行 asp      更新时间:2023-09-26

我有一个 ASP.net 的Web应用程序,其中包含许多页面。它们中的大多数具有多行 APS.net 文本框和标准文本框。按 Return 键会产生意外结果,具体取决于浏览器、页面、上次使用的控件。它可以触发主页或子页的任何控件。有时按回车键甚至会触发注销控件。

因此,为了防止这种情况,我添加了:

body onkeydown="return (event.keyCode!=13)"

在许多地方推荐的母版页正文标记中,它就像一个超级按钮。但是,这会导致返回键不响应文本区域中的换行符。用户需要能够在文本区域(文本框模式.多行)中插入换行符

如何防止此行为?

你可以使用这个

window.onload = function() {
    setEvent("text", onKeyDown);
}
function onKeyDown()
{
   return (event.keyCode!=13)
}

这将取消仅文本框中的返回按钮

找到了一个解决方案:保持:

body onkeydown="return (event.keyCode!=13)"

这将禁用使用返回键的任何回发,然后将以下属性添加到任何多行文本框:

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

使用以下 JavaScript:

// add Line feed in text area.
function EnterEvent(e,ctl) {
    var keycode = (e.keyCode ? e.keyCode : e.which);
    if (keycode == 13) {
    var st1 = $(ctl).textrange('get', 'start');
    var l = ctl.value.length;
    if (st1 < l) {
        $(ctl).textrange('replace', ''n');
        $(ctl).textrange('set', st1 + 1, 0);
    }
    else {
        ctl.value = ctl.value + ''n';
    }
    }
}

此"手动"在返回键启动事件时插入 LF。

相关文章: