在GridView TemplateField TextBox中,回车键的执行方式与选项卡类似
In GridView TemplateField TextBox enter key performs like tab
我有一个GridView,它有一个TemplateField,里面有一个TextBox。唯一的问题是它会跳过下一个TextBox,然后转到该TextBox。奇怪的是,每次按下回车键都会跳过一个文本框。我对Javascript的了解还不足以修复它。有人能看看我的代码吗?
我的Javascript:
function tabE(obj, e) {
var e = (typeof event != 'undefined') ? window.event : e;// IE : Moz
if (e.keyCode == 13) { // 9 for Tab and 13 for enter
var ele = document.forms[0].elements;
for (var i = 0; i < ele.length; i++) {
var q = (i == ele.length - 1) ? 0 : i + 2;
if (obj == ele[i]) {
//focus TextBox on next row
ele[q].focus();
break
}
}
e.returnValue = false;
if (typeof event == 'undefined')
e.preventDefault();
}
}
我的GridView
<asp:GridView ID="gvPackRegular" AutoGenerateColumns="false" ShowHeaderWhenEmpty="true"
CssClass="GridView" runat="server" Width="100%">
<AlternatingRowStyle CssClass="alt" />
<Columns>
<asp:TemplateField HeaderText="Carton" HeaderStyle-CssClass="GridViewHeader">
<ItemTemplate>
<asp:Label ID="lblPackName" runat="server" Text='<%# Eval("CartonType.Description") %>'></asp:Label>
<asp:Label ID="lblCartonTypeID" runat="server" Text='<%# Eval("CartonType.CartonTypeId") %>'
Visible="false"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity" HeaderStyle-CssClass="GridViewHeader">
<ItemTemplate>
<asp:TextBox ID="txtPackQty" runat="server" Text='<%# Bind("Pack") %>' CssClass="SmallTextbox"
onchange="invalidate();" onfocus="selectTextonFocus(this);" onkeydown="tabE(this,event)"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
问题出现在i+2
中
更改
var q = (i == ele.length - 1) ? 0 : i + 2;
至
var q = (i == ele.length - 1) ? 0 : i + 1;
相关文章:
- 我想以异步方式执行常规函数
- 当以编程方式更改输入值时,不会执行更改时事件
- Javascript - 以编程方式执行所有函数输入的方法
- 如何使用cURL或其他方式在点击时执行事件
- Turbolinks:body标记中的javascript代码没有按应有的方式执行
- 如何在CKEDITOR中以编程方式执行undo和redo,并重置它们的堆栈
- Javascript数学不起作用,更好的方式来执行操作
- 如何在Ember中以编程方式执行ArrayController[index]
- 以编程方式打开火狐浏览器并执行 POST 请求?[想法:MozRepl,建议?
- 承诺在以不同方式执行时显示不同的结果
- 为什么用户选中一个框与以编程方式执行不同
- D3.js以不同的方式执行
- 以连续的方式执行循环中的所有元素
- React Native使用什么来允许JavaScript在iOS和Android上以本机方式执行
- 根据函数首次运行的时间,以不同的方式执行函数
- 在一个库被添加/下载并以承诺的方式执行后,是DOM中的元素
- 如何以编程方式执行javascript,就像从浏览器栏
- Node js中的回调函数是否以同步方式执行
- Javascript条件正在以任意方式执行
- 以同步方式执行异步调用