单击“<按钮>”时表单提交</button>

时间:2013-07-12 06:52:14

标签: javascript jquery html forms

我有一个帐户创建表单。没有提交按钮,只有<button>。现在,当单击按钮时,我运行了jQuery验证。正在运行验证并显示正确的错误,然后提交表单并重新加载页面。即使我没有提交按钮,也没有jQuery submit()功能。

HTML:

<form id="accountCreate" method="POST" action="<?=site_url('account/create')?>">
    <h3>Create an Account</h3>
    <ul>
        <li><input type="text" name="email" placeholder="Email..." /></li>
        <li><input type="password" name="password" placeholder="Password..." id="password" /></li>
        <li><input type="password" placeholder="Verify Password..." id="verifyPassword" /></li>
        <li><button id="button">Create</button></li>
    </ul>
</form>

JS:

$(document).ready(function() {
$('#button').click(function() { 
    var password = $('input#password').val();
    var passwordV = $('input#passwordVerify').val();

    if (password.length >= 6 && password.length <= 24) {
        if (password == passwordV) {

        } else {
            $('div#error').css('display', 'inline');
            $('div#error span.errorMessage').text('hey');
        }
    } else {
        alert('yo');
        return false;
    }
});
});

4 个答案:

答案 0 :(得分:5)

如果未定义type属性,则<button />充当提交按钮 添加type="button"以解决此问题。

<button id="button" type="button">Create</button>

http://www.w3.org/TR/html-markup/button.html#button

答案 1 :(得分:2)

您需要为按钮指定默认的type=属性,因为不同的浏览器可以使用不同的默认值。在您的情况下,浏览器默认为type="submit"

答案 2 :(得分:0)

$(document).ready(function() {
$('#button').click(function() { 
var password = $('input#password').val();
var passwordV = $('input#passwordVerify').val();

if (password.length >= 6 && password.length <= 24) {
    if (password == passwordV) {

    } else {
        $('div#error').css('display', 'inline');
        $('div#error span.errorMessage').text('hey');
    }
} else {
    alert('yo');
    return false;
}
//Just add return false
return false;
});
});

答案 3 :(得分:0)

您应该添加evt.preventDefault();以使提交仅执行您想要的操作。