weixin_33714884 2016-10-16 16:41 采纳率: 0%
浏览 15

jQuery-表单未验证

In the following form when I hit submit, it alerts 111, but does not send an ajax request. It instead sends a page-refreshing submit request. Why?

<form id="post_answer_form" method="POST" action="some_url">
    <fieldset>
        <textarea id="qanswer" name="qanswer"></textarea>
        <button type="submit">Post Your Answer </button>
        <button type="submit" style="display: none;">Update </button>
    </fieldset>
</form>

I'm validating it against some rules as follows:

$(document).on('submit', '#post_answer_form', function(){
    alert(111)
    tinymce.triggerSave();
}).validate({
    ignore: '',
    rules: {
        qanswer: {
            required: true,
        }
    },
    submitHandler: function(form) {
        alert(111)
        $.ajax({
            ...
        });
        return false
    },
});
  • 写回答

1条回答 默认 最新

  • weixin_33717117 2016-10-16 17:44
    关注

    Your validation is not working because you are not applying validate on form . you can try following code.

    $(function(){   
        $('#post_answer_form').submit(function(e) {
            e.preventDefault();    
            tinymce.triggerSave();
            if($('#post_answer_form').valid()){
                // Submit form using ajax or using .submit() 
                $.ajax({
                    ...
                });
            }
        }); 
    
        $('#post_answer_form').validate({
            ignore: '',
            onsubmit : false,
            rules: {
                qanswer: {
                    required: true,
                }
            }
        });
    });
    
    评论

报告相同问题?