0

我有一个包含许多页面的 ASP.net Web 应用程序。他们中的大多数都有 Multiline APS.net 文本框和标准文本框。根据浏览器、页面、上次使用的控件,按返回键会产生意外结果。它可以触发任何控件,无论是主页面还是子页面。有时按回车键甚至会触发注销控件。

所以为了防止这种情况,我添加了:

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

在许多地方推荐的母版页正文标签中,这就像一个魅力。但是,这会导致返回键不响应文本区域中的换行。用户需要能够在文本区域中插入换行符(TextBoxMode.MultiLine)

如何防止这种行为?

4

2 回答 2

1

你可以用这个

window.onload = function() {
    setEvent("text", onKeyDown);
}

function onKeyDown()
{
   return (event.keyCode!=13)
}

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

于 2013-09-09T13:04:57.580 回答
0

找到解决方案:保留:

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

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

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。

于 2013-09-11T12:21:59.563 回答