开发者

How can I can set which submit button is fired on enter?

开发者 https://www.devze.com 2023-02-12 14:56 出处:网络
I have a form with several submit buttons. I want my last button to handle the submit rather than the HTML5 spec\'ed first button.

I have a form with several submit buttons. I want my last button to handle the submit rather than the HTML5 spec'ed first button.

I can't change the html at this point and am fairly sure this requires JS. But when开发者_如何学运维 I've given it a shot I've gotten into nasty loops or dead code trying to prevent default behaviour and then fire my other button.

Has anyone done this before? jQuery is on the page if needed.

Thanks, Denis


Since you mentioned jQuery :)

If all you want to do is submit your form when a user presses the enter key, then

$(function() {
    $('body').keypress(function(e) {
        if (e.which == 13) {
            e.preventDefault();
            $('#myForm').submit();
       }
    });
});

However, if you have different behavior/forms depending on which button is clicked and you want the enter key to trigger your last button's click event, then

$(function() {
    $('body').keypress(function(e) {
        if (e.which == 13) {
            e.preventDefault();
            $('input[type="submit"]:last').click();
        }
    });
});


You should just change the input element's type attribute to button instead when you don't want it to submit the form. (I know you said you can't really change the HTML, but this is the best way)

<input type="button" name="mybutton" class="submit-button" value="I wont submit!" />

jQuery code:

$('.submit-button').click(function() {
  $('#secret-value-field').val($(this).val());
  $(this).parents('form').submit();
});

Or something along those lines.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号