Javascript 如何使此validationTextBox保持焦点?
在执行ajax请求后,如果表单中的输入错误,我将尝试将此ValidationTextBox作为焦点,并显示一条显示问题的指示消息 代码是:Javascript 如何使此validationTextBox保持焦点?,javascript,dojo,Javascript,Dojo,在执行ajax请求后,如果表单中的输入错误,我将尝试将此ValidationTextBox作为焦点,并显示一条显示问题的指示消息 代码是: dijit.byId("passwordField").focusNode.focus() 表单元素如前面提到的validationTextBox 让我更加困惑的是,在Dojo1.5之前,这段代码只是dijit.byId(“passwordField”).focus(),并且工作得很好。我怎样才能解决这个问题 我也尝试过: require(["dijit/
dijit.byId("passwordField").focusNode.focus()
表单元素如前面提到的validationTextBox
让我更加困惑的是,在Dojo1.5之前,这段代码只是dijit.byId(“passwordField”).focus()
,并且工作得很好。我怎样才能解决这个问题
我也尝试过:
require(["dijit/focus"],function(focusU){
focusU.focus(dojo.byId("ID"));});
但是这也不起作用。您可以在表单标签中尝试类似的操作:
<script language="javascript" type="text/javascript">
Sys.Application.add_load
(
function () {
window.setTimeout(focus, 1);
}
)
function focus() {
if (document.getElementById('txtComm1') != null) {
if (document.getElementById('txtComm1').disabled != true) {
document.getElementById('txtComm1').focus();
}
}
}
</script>
Sys.Application.add\u加载
(
函数(){
设置超时(焦点,1);
}
)
函数焦点(){
if(document.getElementById('txtComm1')!=null){
if(document.getElementById('txtComm1').disabled!=true){
document.getElementById('txtComm1').focus();
}
}
}
如果dijit.widget.focus()失败,则_FocuxMixin在启动期间未正确加载
对于任何dijit.form.Type,您应该能够通过以下方式成功获得焦点:
dijit.byId('ID').focus();
我认为您混淆了DOM事件焦点和小部件焦点处理。如果启动
widget.focusNode.focus
-您将无法从任何浏览器中的ValidationTextBox
中受益。如果您的表单字段位于dijit/Dialog
中,则对话框将自动聚焦于第一个输入。您可以通过设置以下选项禁用此行为:
autofocus: false
在对话框上,然后
widget.focus();
应该很好。这对我来说很有效
setTimeout(function(){
widget.focus();
}, 100);
我已经尝试过dijit.byId(“ID”).focus()。事实上,这是我做的第一件事。但这不起作用,我尝试了focusNode的方法,因为这就是答案。但这两种方法都不起作用。它确实有效,设置required
属性,它将断言focusmixinHow的it hangin'?有问题吗?或者您已对它们进行了排序?如果您需要“dijit/registry”作为“registry”注册表。byId('ID')。focus()适合我。仅当您希望最初聚焦ValidationTextBox时,才应在ValidationTextBox节点上设置html5自动聚焦属性。