如果字段为空,则需要Jquery验证下拉列表

Ste*_* S. 14 jquery jquery-validate

如果#category字段为空,我正在尝试下拉列表.

谢谢!

JQUERY ATTEMPT#1:

$("#uploadDocsForm").validate({
    rules: {
        name: {
            required: true,
            minlength: 2,
            maxlength: 255  
        },
        cat_id: {
            required: function(element) {
                return $("#category").val() == '';
            }
        }
    },
    messages: {
        name: 'Please enter a <b>Document Name</b>.',
        cat_id: 'Please select a <b>Category</b>.'
    }
});
Run Code Online (Sandbox Code Playgroud)

JQUERY ATTEMPT#2:

$("#uploadDocsForm").validate({
    rules: {
        name: {
            required: true,
            minlength: 2,
            maxlength: 255  
        },
        cat_id: {
            required: {
                depends: function(element) {
                    return $("#category").val() == '';
                }
            }
        }
    },
    messages: {
        name: 'Please enter a <b>Document Name</b>.',
        cat_id: 'Please select a <b>Category</b>.'
    }
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<form name="uploadDocsForm" id="uploadDocsForm">   
    <label for="name">Document Name</label>
    <input name="name" id="name" type="text" class="textbox"/>
    <label for="cat_id">Category</label>
    <select name="cat_id" id="cat_id" class="dropdown">
    <option selected>Please Select Category</option>
    <option>------------------------</option>
    <option value="1">test cat</option>
    </select>
    <label for="category">New Category</label>
    <input name="category" id="category" type="text" class="textbox"/>
    </form>
Run Code Online (Sandbox Code Playgroud)

Cha*_*had 19

$("#uploadDocsForm").validate({
    rules: {
        name: {
            required: true,
            minlength: 2,
            maxlength: 255  
        },
        cat_id: {
            required: {
                depends: function(element) {
                    return $("#category").val() == '';
                }
            }
        }
    },
    messages: {
        name: 'Please enter a <b>Document Name</b>.',
        cat_id: 'Please select a <b>Category</b>.'
    }
});
Run Code Online (Sandbox Code Playgroud)

depends函数现在检查是否填充了category元素,如果是,则第二个是必需的.否则它是可选的(意思是可以填充).

用例:

  • 填写类别,cat_id为空:无效
  • 填写类别,cat_id填充:有效
  • 类别为空,cat_id为空:有效
  • 类别为空,cat_id已填充:有效