2011-06-15 93 views
1

我是jQuery的新手,如果此问题非常基本,我会aplogize。清除错误消息或使用jQuery验证插件重置验证

我正在使用bassistance的Valiation插件来验证一个简单的表单。其中一个文本字段是强制性的 - 所以我设置了所需的标志在规则和相应的消息消息。我的问题是,一旦验证启动,即使该字段为空(即,如果用户删除字段的内容以从头开始),我所设置的错误消息也会显示。无论如何清除错误信息或重置验证,如果该字段变空了?我试图使用resetForm(),但看起来像它仍然验证时不能使用它。下面是部分代码:功能)

var validator = $("#form1").validate({ 
    rules: { 
     fname: { 
      required: true, 
      remote: 'http://localhost/check_name.php' 
     } 
     }, 
    messages: { 
     fname: { 
      required: "Enter a valid jobname. eg: 99999_Disney", 
      remote: "Name already exists"; 
        } 

       } 
    }); 

感谢您的帮助

$(文件)。就绪(({

+0

我解决了这个问题。不知道这是否是最优雅的方式,但它的工作原理。我必须以某种方式清除场地的无效状态。我尝试了'resetForm()',但没有奏效。最后我使用了这样的'{validator.resetForm(); (“#ID”)。rules(“remove”,“minlength required”);} – samba 2011-06-19 13:09:00

回答

1

我解决了这个问题。不知道这是否是最优雅的方式,但它的工作原理。我必须以某种方式清除场地的无效状态。我试过resetForm(),但没有奏效。最后,我用这样的:

if ($("#ID").val()=="") { 
       validator.resetForm(); 
       $("#ID").rules("remove", "required minlength"); 
     } 

,并根据需要使用添加这些规则回到ID:

$("#ID").rules("add", { 
          required: true, 
          minlength: 5,  
          messages: {//messages 
          },        
       }); 
0

你可以尝试使用验证方法,像这样:

jQuery.validator.addMethod("ValReqJobName", valReqJobName, "Enter a valid jobname."); 

,然后在规则对象,其中 “fname” 下,只需添加 “ValReqJobName:真”。

在“valReqJobName”函数中,您可以允许该字段为空,或者添加您想要的任何自定义逻辑。

+0

感谢您的帮助。我尝试了你的想法,但我无法实现它,我觉得我的逻辑是有缺陷的。以下是我想要实现的内容:我希望该字段是必需的或必填的,但如果该字段只是空白,则不会显示错误。插件开始验证字段后,它始终显示“required”消息 - 即使字段为空,字段也没有焦点。所以我写了这样的事情,但它是有缺陷的: – samba 2011-06-15 21:08:31

+0

'jQuery.validator.addMethod( “namereq”, 功能(jname){ \t VAR focusflag = FALSE; \t jname.focus(函数(){ \t \t \t focusflag = TRUE; \t} \t jname.blur(函数(){ \t \t \t focusflag = FALSE; \t \t} \t如果((focusflag == TRUE)&&(jname。长度== 0)) { return true; } 否则返回false; }, “不为空”。 );'你可以看看这个吗? – samba 2011-06-15 21:24:49

+0

我道歉,我不知道如何发表评论部分的代码 – samba 2011-06-15 21:27:55