Focus Input Box On Load

后端 未结 11 2536
无人及你
无人及你 2020-11-30 01:10

How can the cursor be focus on a specific input box on page load?

Is it posible to retain initial text value as well and place cursor at end of input?



        
相关标签:
11条回答
  • 2020-11-30 01:21

    If you can't add to the BODY tag for some reason, you can add this AFTER the Form:

    <SCRIPT type="text/javascript">
        document.yourFormName.yourFieldName.focus();
    </SCRIPT>
    
    0 讨论(0)
  • 2020-11-30 01:23

    A portable way of doing this is using a custom function (to handle browser differences) like this one.

    Then setup a handler for the onload at the end of your <body> tag, as jessegavin wrote:

    window.onload = function() {
      document.getElementById("myinputbox").focus();
    }
    
    0 讨论(0)
  • 2020-11-30 01:25
    function focusOnMyInputBox(){                                 
        document.getElementById("myinputbox").focus();
    }
    
    <body onLoad="focusOnMyInputBox();">
    
    <input type="text"  size="25" id="myinputbox" class="input-text" name="input2" onfocus="this.value = this.value;" value = "initial text">
    
    0 讨论(0)
  • 2020-11-30 01:26

    Working fine...

    window.onload = function() {
      var input = document.getElementById("myinputbox").focus();
    }
    
    0 讨论(0)
  • 2020-11-30 01:26

    This is what works fine for me:

    <form name="f" action="/search">
        <input name="q" onfocus="fff=1" />
    </form>
    

    fff will be a global variable which name is absolutely irrelevant and which aim will be to stop the generic onload event to force focus in that input.

    <body onload="if(!this.fff)document.f.q.focus();">
        <!-- ... the rest of the page ... -->
    </body>
    

    From: http://webreflection.blogspot.com.br/2009/06/inputfocus-something-really-annoying.html

    0 讨论(0)
  • 2020-11-30 01:34

    There are two parts to your question.

    1) How to focus an input on page load?

    You can just add the autofocus attribute to the input.

    <input id="myinputbox" type="text" autofocus>
    

    However, this might not be supported in all browsers, so we can use javascript.

    window.onload = function() {
      var input = document.getElementById("myinputbox").focus();
    }
    

    2) How to place cursor at the end of the input text?

    Here's a non-jQuery solution with some borrowed code from another SO answer.

    function placeCursorAtEnd() {
      if (this.setSelectionRange) {
        // Double the length because Opera is inconsistent about 
        // whether a carriage return is one character or two.
        var len = this.value.length * 2;
        this.setSelectionRange(len, len);
      } else {
        // This might work for browsers without setSelectionRange support.
        this.value = this.value;
      }
    
      if (this.nodeName === "TEXTAREA") {
        // This will scroll a textarea to the bottom if needed
        this.scrollTop = 999999;
      }
    };
    
    window.onload = function() {
      var input = document.getElementById("myinputbox");
    
      if (obj.addEventListener) {
        obj.addEventListener("focus", placeCursorAtEnd, false);
      } else if (obj.attachEvent) {
        obj.attachEvent('onfocus', placeCursorAtEnd);
      }
    
      input.focus();
    }
    

    Here's an example of how I would accomplish this with jQuery.

    <input type="text" autofocus>
    
    <script>
    $(function() {
      $("[autofocus]").on("focus", function() {
        if (this.setSelectionRange) {
          var len = this.value.length * 2;
          this.setSelectionRange(len, len);
        } else {
          this.value = this.value;
        }
        this.scrollTop = 999999;
      }).focus();
    });
    </script>
    
    0 讨论(0)
提交回复
热议问题