document.getElementById 适用于一个表单元素,但不适用于另一个表单元素
document.getElementById working for one form element but not another
我有一个网页,它采用一个 10 位代码,该代码分为两个文本框,第一个文本框中有 4 个字符,第二个文本框中有 6 个字符。
我一直在尝试实现一些 javascript,以便当用户在第一个文本框中输入第四个字符时,光标会跳转到第二个文本框。
页面布局如下:
<asp:TextBox ID="txtCode1" onkeyup="Next()" runat="server" Width="45" MaxLength="4"/>
<asp:TextBox ID="txtCode2" runat="server" Width="70" MaxLength="6"/>
我正在使用以下Javascript:
function Next()
{
var control1 = document.getElementById('<%= txtCode1.ClientID %>');
var control2;
if (control1.value.length == 3)
{
control2 = document.getElementById['<%= txtCode2.ClientID %>'];
control2.Focus();
}
}
我的问题是该函数无法识别第二个文本框。如果我逐步完成 Javascript 没有问题,能够找到txtCode1
并获取长度,但是当长度达到 4 个字符并且必须用getElementById()
调用填充control2
时,它将 control2 设置为未定义,然后是 control2。Focus() 调用抛出错误。
我不明白获取 control1 和 control2 的代码是如何相同的,但这不起作用,我错过了什么?
getElementById
是一个函数,而不是一个数组。
使用()
而不是[]
。
此外,在 JavaScript 中,DOM 元素具有focus
方法,而不是Focus
方法。
更正的代码:
control2 = document.getElementById('<%= txtCode2.ClientID %>');
control2.focus();
在第二个调用中,您使用方括号而不是括号。在第一次调用中,您正确使用了它。
另外,正如dontGoPlastic在下面的评论中指出的那样,您应该使用.focus()
(小写)而不是.Focus()
。
因此,第二个if
块中的代码应如下所示:
control2 = document.getElementById('<%= txtCode2.ClientID %>');
control2.focus();
control2 = document.getElementById['<%= txtCode2.ClientID %>'];
应该是
control2 = document.getElementById('<%= txtCode2.ClientID %>');
^ paren ^ paren
相关文章:
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- Mailchimp内联表单验证不适用于JS加载的HTML
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- 表单中用于特定字段的滚动条
- 异步表单w/Iframe Target——OnLoad适用于FF、Chrome、IE9,不适用于;无法在IE7中得到响应
- 使用2个下拉选项构建表单,用于加载特定的PDF
- 此代码阻止我的表单提交(仅在 chrome 中,适用于 IE 和 Firefox)
- 嵌套表单,用于禁用带有选择框 HTML 的文本字段
- 联系表单不适用于“提交”
- onclickjavascript不再适用于_GET.php表单值
- 动态编辑表单,用于某种带有AngularJS的俄罗斯娃娃容器
- 适用于Chrome,但不适用于Safari——这是一个隐藏的DIV,只在提交带有所有必需字段的表单时显示
- Rails 4远程真实表单请求(用于ajax加载器),更新浏览器url
- 用户输入字段最好使用 DIV 或表单,用于仅计算公式的网页
- Html表单不适用于Php,Ajax请求
- JavaScript注册表单中用于传真号码验证的正则表达式
- 使用& # 39;eval # 39;ClojureScript中的特殊表单,用于确定表单是否为文字
- jQuery表单提交事件只适用于Chrome浏览器