jQuery Validation插件,验证现有的填充字段

时间:2012-07-18 08:46:18

标签: jquery-validate

刚遇到这个问题,如果我有一个已填写的表单字段,我按下提交按钮验证不会发生,但如果我对字段进行更改(如添加字符或两个0,则验证需要地方......

<form id="form_state_edit" method="post" action="javascript:void(0);">
                <fieldset class="fieldset">
                <legend class="legend">Add a new State</legend>
                 <div id="form-wrapper-state-modal" style="width: 20rem;margin-left:5rem;margin-bottom:0.5rem;margin-top:-14px;"></div>
                <div style="">
                <p class="button-height inline-label">
                    <label class="label" for="state_name" style="display:inline;">State Name</label>
                    <input type="text" value="<?=$state_name?>" class="input  validate[required,custom[onlyLetterSp]]" id="state_name" name="state_name" style="width: 15rem;" />
                    <input type="hidden" value="<?=$state_arr[1]?>" id="state_id" name="state_id" />
                    <input type="hidden" value="edit" id="state_action" name="state_action" />

                    <button id="submit_state" class="button glossy mid-margin-right" type="submit">
                    <span class="button-icon">
                    <span class="icon-tick"></span>
                    </span>
                    Save
                    </button>
                    <div id="state_table_temp" style="display:none;"></div>
                </p></div>


                </fieldset>
            </form>

$("#form_state_edit").validationEngine('attach', {

          onSuccess: function(form, status){
            alert("The form status is: " +status+", it will never submit");
} ,
           onValidationComplete: function(form, status){
             alert("The form status is: " +status+", it will never submit");

           } 

基本上 - 如果没有变化(因为我甚至没有点击表格字段而且没有输入任何内容) - onValidationComplete执行并且status = true

如果我做了一个chnage - onSuccess执行...

我必须写什么,以便即使该人没有做出任何改变(也没有点击表格字段)来形成字段,它将进行验证并转到成功部分......

在验证可以启动之前,似乎需要“激活”该文件。

\任何想法?

1 个答案:

答案 0 :(得分:0)

在插件的主页here中,您可以看到以下代码

 alert( $("#formID1").validationEngine('validate') );

尝试在提交按钮的点击事件中使用它而不是像这样的提醒对话框

$('#submit_state').click(function () {
   return $("#form_state_edit").validationEngine('validate');
});

最后,我建议将jQuery代码包装在文档就绪事件处理程序中。虽然这里不需要。如果您的代码需要引用在其之后声明的DOM元素,那么这是常规并且会让您头疼。

$(document).ready(function () {
    //enter code here
});

请记住,我之前没有使用过这个插件,但我很确定这应该可行