Making Enter key on an HTML form submit instead of activating button

前端 未结 7 1583
北恋
北恋 2021-02-03 16:33

I have an HTML form with a single submit input, but also various button elements. When the user presses the \'enter\' key, I\'d expect it to actually s

相关标签:
7条回答
  • 2021-02-03 17:01

    I just hit a problem with this. Mine was a fall off from changing the input to a button and I'd had a badly written /> tag terminator:

    So I had:

    <button name="submit_login" type="submit" class="login" />Login</button>
    

    And have just amended it to:

    <button name="submit_login" type="submit" class="login">Login</button>
    

    Now works like a charm, always the annoying small things... HTH

    0 讨论(0)
  • 2021-02-03 17:03

    You can use jQuery:

    $(function() {
        $("form input").keypress(function (e) {
            if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                $('button[type=submit] .default').click();
                return false;
            } else {
                return true;
            }
        });
    });
    
    0 讨论(0)
  • 2021-02-03 17:05

    Try this, if enter key was pressed you can capture it like this for example, I developed an answer the other day html button specify selected, see if this helps.

    Specify the forms name as for example yourFormName then you should be able to submit the form without having focus on the form.

    document.onkeypress = keyPress;
    
    function keyPress(e){
      var x = e || window.event;
      var key = (x.keyCode || x.which);
      if(key == 13 || key == 3){
       //  myFunc1();
       document.yourFormName.submit();
      }
    }
    
    0 讨论(0)
  • 2021-02-03 17:12

    Given there is only one (or with this solution potentially not even one) submit button, here is jQuery based solution that will work for multiple forms on the same page...

    <script type="text/javascript">
        $(document).ready(function () {
    
            var makeAllFormSubmitOnEnter = function () {
                $('form input, form select').live('keypress', function (e) {
                    if (e.which && e.which == 13) {
                        $(this).parents('form').submit();
                        return false;
                    } else {
                        return true;
                    }
                });
            };
    
            makeAllFormSubmitOnEnter();
        });
    </script>
    
    0 讨论(0)
  • 2021-02-03 17:14
    $("form#submit input").on('keypress',function(event) {
      event.preventDefault();
      if (event.which === 13) {
        $('button.submit').trigger('click');
      }
    });
    
    0 讨论(0)
  • 2021-02-03 17:18

    I just gave this a whirl in both Chrome and Firefox and IE10.

    As mentioned above - make sure that you have marked up with type = "button", "reset", "submit" etc to ensure that it correctly cascades and chooses the correct button.

    Perhaps also setting all of them to have the same form (ie all as that worked for me)

    0 讨论(0)
提交回复
热议问题