document.getElementById(tdId).innerHTML=document.getElementById(tdId).innerHTML+"<IMG src=imgs/vasave.png border=0 width=16 height=16 onclick=\"vasubmit();\" onload=\"document.getElementById("+tdId.replace("id_","input_")+").focus();\" style='cursor:hand'>";
("id_","input_")).value);alert(document.getElementById(tdId.replace("id_","input_")).name);document.getElementById(tdId.replace("id_","input_")).focus();这样的代码运行后,弹出警告框后,会聚焦到<input>控件上。可是我把alert注释掉,就无法直接聚焦。代码如下:document.getElementById(tdId).innerHTML=document.getElementById(tdId).innerHTML+"<IMG src=imgs/vasave.png border=0 width=16 height=16 onclick=\"vasubmit();\" onload=\"document.getElementById("+tdId.replace("id_","input_")+").focus();\" style='cursor:hand'>";
("id_","input_")).value);//alert(document.getElementById(tdId.replace("id_","input_")).name);document.getElementById(tdId.replace("id_","input_")).focus();我的需求是直接聚焦,请问如何实现?

解决方案 »

  1.   

    控件重新渲染需要时间,试试分开写以后加上 deferL@_@K
      <script type="text/javascript">
      <!--
    document.getElementById(tdId).innerHTML=document.getElementById(tdId).innerHTML+" <IMG src=imgs/vasave.png border=0 width=16 height=16 onclick=\"vasubmit();\" onload=\"document.getElementById("+tdId.replace("id_","input_")+").focus();\" style='cursor:hand'>"; 
    ("id_","input_")).value); //alert(document.getElementById(tdId.replace("id_","input_")).name); 
      //-->
      </script>  <script type="text/javascript" defer>
      <!--
    document.getElementById(tdId.replace("id_","input_")).focus(); 
      //-->
      </script>
      

  2.   

    document.getElementById(tdId).innerHTML=document.getElementById(tdId).innerHTML+" <IMG src=imgs/vasave.png border=0 width=16 height=16 onclick=\"vasubmit();\" onload=\"document.getElementById('"+tdId.replace("id_","input_")+"').focus();\" style='cursor:hand'>";  document.getElementById(tdId.replace("id_","input_")).focus();