2011-07-21 38 views
0

我有一个select是自定义验证器方法的目标。每当元素发生变化时调用jQuery自定义验证器方法

验证:

var validator = $("#myform").validate({ 
     rules : { 
      source: "source_selected", 
     }, 
     messages : { 
     }, 
     errorLabelContainer: $("#error_container ul"), 
     errorContainer: $("#error_container"), 
     wrapper : "li"  
    }); 

自定义的验证方法:

$.validator.addMethod("source_selected", function(value, element) { 
     var source_id = $(element).selectedValues(); 
     if(source_id == 0) { 
      return false; 
     } 

     return true; 
    }, "Please a select a source to Copy subscriptions from."); 

选择:

<select name="source" id="source"> 
    <option value="0">-- Choose --</option> 
    <? foreach($managers as $id => $name) { ?> 
    <option value="<?=$id?>"><?=$name?></option> 
    <? } ?> 
</select> 

每次我更改选择source_selected函数被调用的选项。如果我在那里发出警报,每次点击选择框(类似于.blur),都会触发警报。我希望只有在提交按钮被调用时才会调用它。

提交单击事件:

$("#submit_button").click(function() { 
     var valid = validator.form(); 
     if (valid) { 
      document.myform.submit(); 
     } 
    }); 

任何想法是极大的赞赏。

回答

0

而不是将它作为验证程序 - 这对你来说似乎毫无用处 - 只需在onSubmit中调用验证函数,然后检查它的返回值。

+0

这不是一个坏主意。我仍然很好奇为什么这是失败的,因为我使用这种模式到处都是。我的整个网站上大约有十个表单,这样证实了这一点,这是唯一一个表现得很有趣的表单。 – akronymn

相关问题