为什么我不能手动提交此表单?

时间:2012-03-19 06:03:33

标签: jquery html forms

我正在尝试在表单提交之前完成某些事情。以下代码运行没有错误,但我的表单永远不会被提交。我不知道出了什么问题......

<form method="post" id="weber-form" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl">
    <input class="textInputaweb" type="text" name="email" id="email" size="20" value='Enter Email'  onfocus=" if (this.value == 'Enter Email' ) { this.value = ''; }" onblur="if (this.value == '') { this.value='Enter Email';} " />
    <input id="submit" name="submit" class="submitaweber" type="submit" value="Submit"  />
</form>

<script>
    $(function() {
        $('#submit').click(function (e) {
            e.preventDefault();
            // Do something...
            $('#weber-form').submit();
        });
    } 
</script>

3 个答案:

答案 0 :(得分:10)

以使用以下脚本the submit button must NOT have a name or id with the value "submit"。像这样的按钮可以工作:

<input class="submitaweber" type="submit" value="Submit"  />

演示:http://jsfiddle.net/MYht8/

$(function() {

    //we bind to the form instead of the form button
    //using .on() (jQ1.7+)
    $('#weber-form').on('submit', function(e) {

        //prevent form submission
        e.preventDefault();

        //do stuff

        //use the native submit so we wont trigger 
        //this handler again
        this.submit();
    });
});​

答案 1 :(得分:1)

试试这个。它应该工作。

  

$('#weber-form')。submit(function(e){

e.preventDefault();

// Do something...

$('#weber-form').submit();
     

});

答案 2 :(得分:1)

Joseph the Dreamer 很好地解释了这个问题。

您可以使用HTMLFormElement的原生提交方法来解决问题:

HTMLFormElement.prototype.submit.call($('#weber-form')[0]);