使用Jquery提交表单时,按钮可以工作,但不能在';输入';按

使用Jquery提交表单时,按钮可以工作,但不能在';输入';按,jquery,forms,submit,Jquery,Forms,Submit,我有一点jquery,它正在为我提交一份电子邮件注册表格。当用户单击按钮时,一切都正常工作,但是当点击enter键时,表单似乎试图通过html而不是jquery提交,您将被带到表单应该发布的位置。我已尝试使用.submit而不是.click,但这似乎不起作用 $('#email-signup-button').click(function () { var email = $('#email-address').val(); // Check to see if

我有一点jquery,它正在为我提交一份电子邮件注册表格。当用户单击按钮时,一切都正常工作,但是当点击enter键时,表单似乎试图通过html而不是jquery提交,您将被带到表单应该发布的位置。我已尝试使用.submit而不是.click,但这似乎不起作用

$('#email-signup-button').click(function () {
        var email = $('#email-address').val();

        // Check to see if field is blank
        if (email.length < 1) {
            errorLog += ('Please provide an email address.');
            errorCount++;
        }

        // If field is email address, check w/ regex
        if (email.match(emailRegex) == null) {
            if (errorCount == 0) {
                errorLog += ('Email address is invalid.\nPlease verify.');
                errorCount++;
            }
        }

        if (errorCount > 0) {
            alert(errorLog);
            errorCount = 0;
            errorLog = "";
        }
        else {
            $.post("/Home/AddEmail", { emailAddress: email });

            alert('Thank you for signing up!');
            $('#email-address').val("");
            $('#email-signup').hide();
            $('.lb_overlay').hide();
        }

        return false;
    });
}


        <div id="email-signup">
            <h2>
                Content Phrase
            </h2>
            <div class="email-deals-close-button">
            </div>
            <p>
                More Content</p>
            <form action="/Home/AddEmail" class="clearfix" method="post">
            <p class="sign-up">
                <label class="placeholder" for="email-address">
                    some@email.com</label>
                <input type="text" id="email-address" name="email-address" value="" />
            </p>
            <button id="email-signup-button" type="button" class="green-action-button">
                Submit</button>
            </form>
        </div>
$(“#电子邮件注册按钮”)。单击(功能(){
var email=$(“#电子邮件地址”).val();
//检查字段是否为空
如果(email.length<1){
errorLog+=(“请提供电子邮件地址”);
errorCount++;
}
//如果字段是电子邮件地址,请选中w/regex
if(email.match(emailRegex)==null){
如果(errorCount==0){
errorLog+=(“电子邮件地址无效。\n请验证”);
errorCount++;
}
}
如果(错误计数>0){
警报(错误日志);
errorCount=0;
errorLog=“”;
}
否则{
$.post(“/Home/AddEmail”,{emailAddress:email});
警惕(“感谢您的注册!”);
$(“#电子邮件地址”).val(“”);
$(“#电子邮件注册”).hide();
$('.lb_overlay').hide();
}
返回false;
});
}
内容短语

更多内容

some@email.com

提交
您应该附加到表单本身的提交事件,而不是单击按钮

 $("#formid").submit(//your function here);

您应该附加到表单本身的提交事件,而不是单击按钮

 $("#formid").submit(//your function here);

防止发生提交:

$('#your_form_id').submit(function() {
  return false;
});

防止发生提交:

$('#your_form_id').submit(function() {
  return false;
});

您可以改为绑定到表单的提交事件

$('#myForm').submit(function(){ /* do stuff */ });

您可以改为绑定到表单的提交事件

$('#myForm').submit(function(){ /* do stuff */ });
这样做:

$("form").submit(function(e){
e.preventDefault();return false;
});
这样做:

$("form").submit(function(e){
e.preventDefault();return false;
});

“电子邮件注册”按钮是否为表单的“提交”按钮(即
type=“submit
)?如果不是,则应使其正常工作。如果不希望如此,可在窗口上设置一个事件,并将其指向该按钮的“单击”事件:

 $(window).bind('keypress', function(e){
   if ( $( e.originalTarget ).is( ':input' ) && e.keyCode == 13 ) {
     $(#email-signup-button").click();
     e.preventDefault();
   }
 });
()

另一个值得注意的地方是可能导致混淆问题的名称冲突错误:

表单及其子元素不应使用与表单属性(如submit、length或method)冲突的输入名称或ID。名称冲突可能会导致混乱的失败。有关规则的完整列表以及检查标记是否存在这些问题,请参阅

()


理想情况下,找到导致提交不起作用的原因并使用它。

电子邮件注册按钮是表单的提交按钮(即
type=“submit
)吗?如果没有,这应该是可行的。如果您不希望这样,您可以在窗口上设置一个事件,并将其指向该按钮的单击事件:

 $(window).bind('keypress', function(e){
   if ( $( e.originalTarget ).is( ':input' ) && e.keyCode == 13 ) {
     $(#email-signup-button").click();
     e.preventDefault();
   }
 });
()

另一个值得注意的地方是可能导致混淆问题的名称冲突错误:

表单及其子元素不应使用与表单属性(如submit、length或method)冲突的输入名称或ID。名称冲突可能会导致混乱的失败。有关规则的完整列表以及检查标记是否存在这些问题,请参阅

()


理想情况下,找到导致提交不起作用的原因并使用它。

您的按钮类型设置为“按钮”。如果要绑定到提交事件,则需要将按钮设置为输入,其类型为
type=“submit”

按钮类型设置为按钮。如果要绑定到提交事件,则需要将按钮作为输入,其类型为
type=“submit”

问题如Vincent所述。他在按钮上加了一个句柄,点击按钮就形成了提交。啊,好的。这更有道理。问题正如文森特所提到的。他在按钮上加了一个句柄,点击按钮就形成了提交。啊,好的。这更有意义。id=“电子邮件注册按钮”,是的,这是我的电子邮件注册button@Lawrence-但它是不是
?似乎不是,这意味着
.submit()
无法按预期工作。如果您不想使用submit按钮,那么我提供的窗口EnterFix将起作用。是他们输入电子邮件的输入at@Lawrence-按钮是我关心的问题。您将其设置为常规按钮,而不是提交按钮。我想我不需要将其设置为。我想我可以使用一个按钮,然后在jqueryid=“电子邮件注册按钮”中调用该按钮,是的,这是我的电子邮件注册button@Lawrence-但它是不是
?似乎不是,这意味着
.submit()
无法按预期工作。如果您不想使用submit按钮,那么我提供的窗口EnterFix将起作用。是他们输入电子邮件的输入at@Lawrence-按钮是我关心的问题。您将其设置为常规按钮,而不是提交按钮。我想我不需要将其设置为,我想我可以使用一个按钮,并在jquery中调用该按钮