代码之家  ›  专栏  ›  技术社区  ›  Etienne

在页面加载时用javascript填充文本框

  •  1
  • Etienne  · 技术社区  · 14 年前

    我的表单上有一个名为txtname的文本框。

    在我的页面中,我知道我需要像这样把代码放在我的头标签中……

    <script type='text/javascript' language="javascript">
    
     document.FormName.txtName.value = "Robert";
    
     </script> 
    

    但我似乎无法用上述代码设置文本框txtname的值……

    3 回复  |  直到 14 年前
        1
  •  5
  •   Keeper    14 年前

    这是因为您的代码是在创建DOM之前执行的。 你可以这样做

    window.onload = function() { 
      document.forms['FormName'].elements['txtName'].value = "Robert";
    }
    

    或使用jQuery

    $(function() {
      document.forms['FormName'].elements['txtName'].value = "Robert";
      // for a shorter syntax use id
      $('#txtNameId').val("Robert");
    }
    
        2
  •  1
  •   wassertim    14 年前

    您的脚本在页面加载前执行。使用OnLoad事件

        3
  •  0
  •   David Robbins    14 年前

    你能在文本框上设置ID吗?然后可以使用getElementByID(“textbox id”);按ID选择更快。

    更新: 您需要确保已经加载了DOM,这样脚本就可以找到要更新的元素。一种方法是:

    <body>      
        <form>
        <input id="txtName" name="txtaaaName" type="text" value="notnow"/>
        </form>
        <script type="text/javascript">
            function LoadTextBox(){
                document.getElementById("txtName").value = "ready to go";
            }
    
            LoadTextBox();
        </script>   
    </body> 
    

    另一种选择是在body标签中使用onload:

    <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>Untitled Document</title>
            <script type="text/javascript">
                function LoadTextBox(){
                    document.getElementById("txtName").value = "ready to go";
                }
            </script>   
        </head>
        <body onload="LoadTextBox">     
            <form>
            <input id="txtName" name="txtaaaName" type="text" value="notnow"/>
            </form>
    
        </body>