积极答复者
asp.net/c#textbox接收事件

问题
-
想实现用textbox接收一条来自扫描枪的数据,并自动响应接收,扫描枪上设置了换行(LF)和回车(CR)后缀,用textbox multiline,能显示每扫的一条条记录,也就是能自动回车换行,用singleline,接收一条记录无反应,用网上一些方法如"pressdown"或者"keyCode==13"试过,无反应,但用键盘回车键能生效,这是怎么回事?有好的解决方法没???
代码如下:
aspx:
<head runat="server">
<title>Scan </title>
<script language="javascript">
function EnterTextBox()
{
if(event.keyCode==13)
{
document.getElementById("btnSubmit").click();
}
}
</script>
</head>
<body onkeypress="return EnterTextBox()">
<form id="form1" runat="server" defaultbutton="btnSubmit">
<asp:TextBox ID="txtScan" runat="server" Height="21px" TextMode="MultiLine"> </asp:TextBox>
<asp:button id="btnSubmit" text="Submit" runat="server" OnClick="btnSubmit_Click">
</asp:button>
</form>
</body>
</html>
cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtScan.Attributes.Add("onkeypress", "EnterTextBox()");
}
}
答案
全部回复
-
测试是可以的。这样可以兼容其他浏览
<head id="Head1" runat="server"> <title>Scan </title> <script type="text/javascript"> function EnterTextBox(evt) { evt = window.all ? window.event : evt if (evt.keyCode == 13) { document.getElementById("<%=btnSubmit.ClientID %>").click(); } } </script> </head> <body onkeypress="return EnterTextBox(event)"> <form id="form1" runat="server" defaultbutton="btnSubmit"> <asp:TextBox ID="txtScan" runat="server" Height="21px" TextMode="MultiLine"> </asp:TextBox> <asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click"> </asp:Button> </form> </body> </html>
txtScan.Attributes.Add("onkeypress", "EnterTextBox(event)");
【孟子E章】- 已建议为答案 mldark 2009年9月10日 11:36
-
你好 建议使用onkeydown事件
function Dokeydown()
{
var obj = event.keyCode;
if(obj == '13')
{
document.getElementById("btnSubmit").click();
return false;
}
}
<body onkeydown="return Dokeydown();">
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond -
母板和子页最终的编译结果是合成为一个文件的,你可以将脚本定义成一个文件,做成函数,然后使用参数传递对象的id
比如
<textarea onpropertychange="process(this,'x')"></textarea><div id=x></div>
类似这样的思路。<script>function processInput(a,b){if(a.value.indexOf("\r\n")>-1) document.getElementById(b).innerHTML = "ok"}</script>
不过,因为Web需要网络来支持,所以,你提交数据要考虑到网络的环境问题。或者POST出现问题的情况,数据有可能丢失。
【孟子E章】