0

我的表格有以下部分:

<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 函数不会触发控制台错误(我故意强制调用它)

这一切都是在 Wordpress 博客上使用Official jQuery Validator jQuery Plugin完成的

那么这是如何完成的和/或我做错了什么?

4

1 回答 1

1

约莎,

AFAIK,Validator api 要求规则应该有元素 id。您需要添加“additionalWebinar”作为选择元素的 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")
                }
            }
        }
    }
})
});
于 2012-06-01T06:10:57.170 回答