1

我在我的主页上使用了一个基本表单,它收集了用户的电子邮件地址。没有提交按钮,而是一个启动模式框的锚链接。(用户输入的电子邮件地址用于模态内容)

当用户填写表单电子邮件输入时,他们的自然本能是按回车或单击“提交”链接。通过启动模式,提交链接非常有用,但按 Enter 将尝试提交表单。我不希望用户提交表单,而是通过按下锚链接启动模式。

有没有办法:

A) 更改 enter 的默认行为以启动模式与提交表单?

或者

B) 禁用 Enter 按钮提交表单并强制用户单击锚链接?


我使用的是leanmodal,它非常简单,语法如下:

<a href="#newsForm" rel="leanModal" class="submitModal">Submit</a>

<div id="#newsForm">Modal content here</div>

注意:我不能将提交输入用作“模态启动器”,因为模态与输入不兼容。

4

2 回答 2

1

我宁愿推荐这样的东西。

$(function() {
    $('#newsForm').submit(function( jqEvt ) {
        jqEvt.preventDefault();
        $('.submitModal').click();
    });
});
于 2012-08-08T16:08:54.620 回答
0

A)更改 enter 的默认行为以启动模式与提交表单:

$(function(){
    $(document).on('keyup', function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13) { //Enter keycode
            //If user press enter will open the modal
            $('.submitModal').click();
        }
    });
});​

B)禁用 Enter 按钮提交表单并强制用户单击锚链接。

$(function(){
    $(document).on('keyup', function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13) { //Enter keycode
            //Stop the "submit", nothing will happen when user press enter
            e.preventDefault();
        }
    });
});​

C)另一种选择:您可以通过执行以下操作“覆盖”该submit();功能:

$(function() {
    $('#newsForm').submit(function(e) {
        $('.submitModal').click();
        e.preventDefault();
    });
});
于 2012-08-08T16:05:22.737 回答