jQuery Validate Plugin: how to validate a dropdown

前端 未结 3 1735
栀梦
栀梦 2021-02-06 15:12

I\'m trying to use the jQuery Validate plugin to validate a dropdown. It validates the rest of my form correctly. But it doesn\'t work on the dropdown.

Here is my jQue

相关标签:
3条回答
  • 2021-02-06 16:04

    If for some reason you can't set the value to blank like Spark said, you can just add your own JQuery validation function instead of the default required preset.

    $.validator.addMethod("aFunction",
        function(value, element) {
            if (value == "none")
                return false;
            else
                return true;
        },
        "Please select a value");
    
    $('#campaignForm').validate({
        rules: {
             campaign_name: {
                 required: true
             },
             html_url: {
                 aFunction: true
             }
        },
        messages: {
            campaign_name: 'Please enter a campaign name',
            html_url: 'Please select a template'
        }
    });
    
    0 讨论(0)
  • 2021-02-06 16:05
    $('#campaignForm').validate({
        rules: {
            html_url: {
                min: 1,
            }
        },
        messages: {
            html_url: 'Please select a template',
        }
    });
    
    0 讨论(0)
  • 2021-02-06 16:08

    If you just want to make a select element required, you would not use depends: because it does not "depend" on another element. In your usage, the depends property is simply toggling the required rule. The problem here is not the required rule... it does not need to be toggled. The problem is that the required rule will not work when all options already contain a value, since required will always be satisfied.

    Simply use value="" for the default option, and then set your rules just like any other element.

    <option value="">Select One...</option>
    

    jsFiddle DEMO

    HTML:

    <form id="campaignForm">   
        <select name="html_url" id="html_url">  
            <option value="">Select One...</option>
            <option value="one">ONE</option>
            <option value="two">TWO</option>
        </select>
        <input type="submit" />
    </form>​
    

    jQuery:

    $(document).ready(function() {
        $('#campaignForm').validate({
            rules: {
                html_url: {
                    required: true
                }
            },
            messages: {
                html_url: {
                    required: 'Please select a template'
                }
            }
        });
    });​
    
    0 讨论(0)
提交回复
热议问题