backbone keydown提交表单而不是调用所需的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了backbone keydown提交表单而不是调用所需的函数相关的知识,希望对你有一定的参考价值。

我正在尝试使用keydown(enter)提交表单并通过我想要的函数发送它。但是当我按下回车键时,它会显示一个行为,就像提交html按钮的类型一样。这是我的BackboneJS代码:

$view.UserProfile_ConfirmPhoneNumber = Backbone.View.extend({
    el: "#confirmPhoneNumberForm",
    events: {
        "click #send-confirm-phone-number-code": "sendConfirmPhoneNumberCode",
        'keydown': 'keyAction',
    },
 keyAction: function (e) {
        var code = e.keyCode || e.which;
        if (code == 13) {
            sendConfirmPhoneNumberCode();
        }
    },
    sendConfirmPhoneNumberCode: function() {
//some code
}

这是我的HTML:

<form class="newRegister-formBox basketForm" id="confirmPhoneNumberForm" autocomplete="off">

            <input type="hidden" id="returnUrl" value="@ViewBag.ReturnUrl" name="ReturnUrl">
            <div class="newRegister-formBox">
                <div class="formElement newRegister-input">
                    <i class="fa fa-key loginIcone"></i>
                    <input autocomplete="off" type="text" name="code" id="code" class="form-control persianDigitInput" placeholder="enter code">
                </div>
                <div class="newRegister-button">
                    <button type="button" id="send-confirm-phone-number-code" class="animateBtn greenAnimateBtn">
                        <i class="fa fa-check"></i>
                        confirm
                    </button>
                </div>
            </div>
    </form>
答案

尝试

 keyAction: function (e) {
    var code = e.keyCode || e.which;
    if (code == 13) {
        e.preventDefault();
        sendConfirmPhoneNumberCode();
        return false;
    }
},

以上是关于backbone keydown提交表单而不是调用所需的函数的主要内容,如果未能解决你的问题,请参考以下文章

createElement 按钮似乎提交表单而不是函数调用[重复]

模型未在表单提交时更新,使用 Backbone + Stickit

Backbone.js - 在视图处于活动状态时添加 keydown 事件?

如何将数据作为表单数据而不是请求有效负载发布?

关于chrome下input中Enter的keydown事件会自动提交form的疑问与解决

如何通过按键盘上的一个键来防止调用多个 KeyDown 事件?