JQuery移动验证无法正常工作,即不显示验证消息

时间:2014-03-30 18:09:22

标签: jquery jquery-mobile jquery-validate

我正在尝试验证此表单:

<form id="manage-form" data-ajax="false">

<label for="business_Name" >Business Name:</label>
<input type="text" class="required" name="business_Name" id="business_Name" data-mini="true"/>



<input id="submission" type="submit" value="insert"/>

</form>

和这个JAVASCRIPT:

var amandeepdb;

$(document).ready(function(){

amandeepdb = openDatabase('AAFeedbackdb','1.0','AAFeedbackdb','2*1024*1024');


createTable();
insertAAType();


$("#submission").on("click", function (evt){


    handleAddForm();
    return false;
});

});

function handleAddForm(){

$('#manage-form').validate({ 
    rules: {
        business_Name: {
            required: true,
            rangelength:[2,30]
        }
    },
    messages: {
        business_Name: {
            required: "required",
            rangelength : "between 2 to 30"
        }
    }


});
}

当我点击插入按钮即不显示消息时,它不会验证。 页面只刷新,不显示消息。

1 个答案:

答案 0 :(得分:0)

引用OP:

  

“页面只刷新,不显示消息。”

它没有验证,因为你没有正确初始化插件。由于您将.validate()方法放在click处理程序中,因此在点击后之前不会初始化插件...到那时为时已晚。

您永远不需要在函数中调用.validate(),单击处理程序等。

// the click handler is not needed - delete this...
//$("#submission").on("click", function (evt){
//    handleAddForm();
//    return false;
//});

只需将.validate()放在DOM就绪处理程序中就可以正确初始化插件。然后插件将自动捕获提交按钮的单击。

$(document).ready(function() {

    $('#manage-form').validate({  // initializes the plugin
        // your rules and options
    });

});

pageinit用于jQuery Mobile“ready”事件......

$(document).on('pageinit', function(){

    $('#manage-form').validate({  // initializes the plugin
        // your rules and options
    });

});