0

我正在使用 jQuery 验证插件,它适用于所有字段,但是当我使用它时select它不起作用

HTML

<form>
    <select id="name" name="name">
        <option>Select</option>
        <option value='select'>Select</option>
        <option value='abc'>ABC</option>
        <option value='xyz'>XYZ</option>    
    </select>
    <input type='submit' value='Submit' />
</form>

脚本

var f=$("form").validate({
    rules: {
        name:{
            required:
                 function(element) {
                     st=($(element).val() == '') || ($(element).val() == 'select');
                     return st;
                }
        }
    },
    messages: {
        name: {required: "Please select name"}
});

另外,我想stop submition在验证后,无论表单是valid还是not.

注意我不想使用$.validator.addMethod.

我已经搜索过了

  1. jQuery选择框验证
  2. jQuery验证选择框
  3. http://www.coldfusionjedi.com/demos/jqueryvalidation/test4.html
4

2 回答 2

1
if($("#name :selected").val() == '') 
    return false;
于 2013-05-17T08:42:02.390 回答
0

我会说这是一个让简单的错误检查稍微复杂化的插件!再一次,我在开发者的 Github 演示页面上发现了你试图做的同样的事情。

小提琴:http: //jsfiddle.net/hAWR3/14/

<script>
    $("#formsubmission").submit(function(event){ 

        /** Cache Result **/
        var tmp = $('#selectname').val();
        console.log( "Selected Name: " + tmp );

        if ( tmp == 'select' || tmp == 'Select' ) {

            /** Prevent the submission **/
            event.preventDefault();
            console.log( 'Unvalidated!' ); 

        } else {

            /** Submit as normal!! **/
            console.log( 'Validated!' );   
        }

    });
</script>

<form method="post" id="formsubmission">
    <select id="selectname" name="name">
        <option>Select</option>
        <option value='select'>Select</option>
        <option value='abc'>ABC</option>
        <option value='xyz'>XYZ</option>    
    </select>
    <input type='submit' value='Submit' />
</form>

注意:如果您的 html 示例中的 like 中没有值,则它采用<option></option>'s! 中的封装值!

于 2013-05-17T08:42:26.937 回答