2015-09-14 130 views
0

相同的代码在focus()的register.phtml页面上工作,但是这个代码不能在personal.phtml上工作。为什么focus()方法不起作用?

<script> 
    $(document).ready(function(){ 
     $("#rut").blur(function(){ 
      document.getElementById('error12').innerHTML =""; 
      var Rut = $("#rut").val(); 
      var RemoveDotInRut = Rut.split('.').join(""); 
      var RemoveHypenInRut = RemoveDotInRut.split('-').join(""); 
      var freshString = RemoveHypenInRut.length; 
      if(freshString<8 || freshString>9){ 
       document.getElementById('error12').innerHTML = "<?php echo $this->__('Please enter a valid Rut number.') ?>"; 
       $("#rut").val(''); 
       $("#rut").focus(); 
      } 

     }); 
    }); 
    </script> 

一切都在上面的脚本,但重点工作()不工作。为什么?

回答

1

使用的是:Demo

移动你的.focus()在那里:

$(this).delay(0).queue(function() { 
    $(this).focus().val("").dequeue();; 
}); 

另外,我还优化了代码。 $("#rut")已更换为$(this)

+0

谢谢Sherali,这是工作。 –

+0

@AmitKushwaha。别客气。另外,你可以使用'setTimeout'(@Jaromanda X表示它)。 http://jsfiddle.net/ys4go2n7/8/ –

+0

哦对不起,我没有得到。对不起 –

1
一旦模糊函数结束,因此设置焦点模糊函数内已没有作用

取代

$("#rut").focus(); 

setTimeout(function() { 
    $("#rut").focus(); 
}, 0); 

焦点将会丢失从而将“重新关注“下一个事件循环中的元素

+0

嗨Jaromanda,你能告诉我这个函数必须在我的脚本中调用吗? –

+0

如果您匆忙 –

-2

使用belo W代码:

$("#focusedDiv").focus(function() { 
    .... 
}); 
+0

,我会在下午3点30分左右说出如何分配焦点事件侦听器来提供帮助? –

-2

点击here

从基本的尝试。

+0

这不是答案,而w3schools在这里并不是很好看 –