2012-07-18 126 views
1

刚刚遇到这个问题,如果我有一个表单域已经填满,我按提交按钮的验证不会发生,但如果我作出更改字段(如在添加字符或two0然后验证发生......jQuery验证插件,验证现有的填充字段

<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执行和状态=真

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

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

它似乎在验证可以开始之前需要“激活”ofr域名。

\ any idea?

+0

jQuery验证引擎是不一样的插件作为广受欢迎的jQuery验证由乔恩Zaefferer 。我编辑了你的问题标题,说明你正在使用引擎 – Dogoku 2012-07-18 09:04:11

+0

感谢和抱歉,我正在使用这一个http://posabsolute.github.com/jQuery-Validation-Engine/ – 2012-07-18 09:05:23

+0

我知道:)试试我的解决方案让我知道你有什么 – Dogoku 2012-07-18 09:13:45

回答

0

在插件的主页,here,你可以看到下面的代码

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

尝试使用,在提交按钮的单击事件,而不是一个警告对话框,像这样

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

最后我会建议将您的jQuery代码包装在文档就绪事件处理程序中。虽然这里不需要。如果你的代码需要引用在它后面声明的DOM元素,那么它是约定并且保存你的头痛。

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

请记住裸露,我以前没有使用这个插件,但即时通讯很肯定这应该工作

+0

@dogku代码被正确包装...和上述不做任何事情....甚至没有在萤火虫中抛出错误消息...我怎么才能解决问题(温度)通过显示提醒询问用户如果你想保存它的话,改变它的值 – 2012-07-18 09:14:33

+0

如果你在Firebug的控制台中调用$(“#form_state_edit”)。validationEngine('validate'),它是否正确验证? – Dogoku 2012-07-18 09:23:33

+0

还没试过...但我会让这休息的momement。我有解决方法...谢谢 – 2012-07-18 09:31:09