我的表格中有以下部分:
<input type="checkbox" class="hide" id="additional-webinar" name="additional-webinar-check" value="additional-webinar-box">
<label class="hide" for="additional-webinar">Include Additional Webinar</label>
<div class="hide" id="additional-webinar-box" style="display:none;">
<label class="title">Select Additional Webinar</label>
<select name="additionalWebinarSelection">
<option value="0" selected="">Please Select</option>
<option value="173">Del All test(Elite Options Mastery)</option>
<option value="171">Glob Test(Elite Futures Mastery)</option><option value="169">Test 2(Elite Futures Mastery)</option>
<option value="167">Test(Elite Futures Mastery)</option><option value="164">Test(Elite Futures Mastery)</option>
<option value="162">New Min TEst(Elite Futures Mastery)</option><option value="160">Min Height Test(Elite Options Mastery)</option>
<option value="158">Title Yo(Elite Options Mastery)</option><option value="156">Title(Options Made Easy)</option>
<option value="96">TT Test(Daily Wealth Report)</option>
</select>
</div>
如果选中复选框,则显示div get,否则隐藏。
我有以下验证码
jQuery('#validate').click(function(){
jQuery("form").validate({
rules: {
additionalWebinar: {
required: {
depends: function() {
return jQuery('input[name=additional-webinar-check]').is(":checked")
}
}
}
}
})
});
但是,总是评估为true,因为select
元素将始终具有选定的选项。如何让它在默认情况下返回false。我尝试过以下方法:
depends: function() {
if(jQuery('input[name=additional-webinar-check]').is(":checked")) {
var input = jQuery('select[name=additionalWebinarSelection]').val();
if (input == 0) {
alert(input);
return false;
} else {
return true;
}
}
}
但无济于事。
调用validate函数没有触发控制台错误(我故意强制调用它)
这一切都是在使用Official jQuery Validator jQuery Plugin
的Wordpress博客上完成的那么这是怎么做的和/或我做错了什么?
答案 0 :(得分:1)
Josha,
AFAIK,Validator api要求规则应该有元素ID。您需要添加“additionalWebinar”作为select元素的id。
jQuery('#validate').click(function(){
jQuery("form").validate({
rules: {
additionalWebinar: { // this has to be an Id of an Element
required: {
depends: function() {
return jQuery('input[name=additional-webinar-check]').is(":checked")
}
}
}
}
})
});