簡體   English   中英

validate.js始終驗證

[英]validate.js always validate

我的jQuery:

 <script src="js/jquery-1.4.4.js" type="text/javascript"></script>
 <script src="js/jquery.validate.js" type="text/javascript"></script>
    <script type="text/javascript">

       $(function() {
            var v = $("#form1").validate({
                ignore: ':hidden',
                rules: {
                    txtTest: { required: true }

                },
                messages: {
                    txtTest: "User name is required."

                }

            });

            $("#btnTest").click(function() {
                if (v.form()) {
                    alert("Success");
                }
                else {
                    alert("Fail");
                }
            });
        });

    </script>

而我的HTML是:

 <input type="text" id="txtTest" />
 <input type="button" id="btnTest" value="Test" />

盡管txtTest為空,但其火災alert("Success"); 。切勿進入else條件。切勿觸發火災alert("Fail"); 。它在螢火蟲中沒有顯示任何錯誤。我找不到我的錯誤。

請參閱演示工作 http://jsfiddle.net/Xc3d5/ 用電子郵件進一步 http://jsfiddle.net/LjMQ2/1/

請參閱驗證element api: http : //docs.jquery.com/Plugins/Validation/Validator/element#element

使用v.form()不會做任何事情,我認為使用.element然后傳遞要驗證的元素。 其余的演示將使其清楚。

希望這可以幫助 :)

var v = $("form").validate({
    submitHandler: function() {
        console.log('successful submit');
        return false;
    }
});

$("#btnTest").click(function() {
    if (v.element('#txtTest')) {
        alert("Success");
    }
    else {
        alert("Fail");
    }
});

您遇到的唯一問題是表單中的每個輸入或選擇都必須具有name屬性。

因此,您的輸入應如下所示:

<input type="text" id="txtTest" name="txtTest" />

除此之外,您的所有演示對我來說都很好-我將@Tats_innit演示簡化為: http : //jsfiddle.net/ryleyb/LjMQ2/2/

如果您需要在表單提交成功失敗時做一些特定的事情,那么正確的位置應該在submitHandlerinvalidHandler 如果要觸發驗證,則合理的做法是執行$('form').submit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM