2010-12-06 90 views
20

我使用jQuery驗證插件表單驗證,我無法驗證列表/選擇框jQuery的驗證選擇框

<select id="select"> 
<option value="-1">Choose an option</option> 
<option value="1">One</option> 
<option value="2">Two</option> 
<option value="3">Three</option> 
</select> 

現在,我要確保用戶選擇什麼,但「選擇選項「(這是默認值,並且值爲-1)。因此,如果您選擇第一個選項,它將不會驗證。如何才能做到這一點?

+0

可能重複http://stackoverflow.com/questions/2901125/jquery-validate -required-select) – 2014-04-15 10:46:58

回答

11

您可以使用Jquery Validator custom rule

討論一個類似的例子here。下面的代碼是從示例:

// add the rule here 
$.validator.addMethod("valueNotEquals", function(value, element, arg){ 
    return arg != value; 
}, "Value must not equal arg."); 

// configure your validation 
$("form").validate({ 
    rules: { 
    SelectName: { valueNotEquals: "-1" } 
    }, 
    messages: { 
    SelectName: { valueNotEquals: "Please select an item!" } 
    } 
}); 
+0

@向下投票人:爲什麼?我知道「select:required」有效,但這個答案也是有效的。它還允許您有更多空間來自定義錯誤消息。 – 2016-10-08 01:45:05

19

<option value="">Choose an option</option>爲空白,而不是-1

使用jQuery驗證

rules: {      
       select: "required" 
} 
+0

唯一的問題是,我無法清除值「」 – 2010-12-06 08:30:54

+1

可能是最簡單的方法。 – di3sel 2012-02-29 10:33:57

4

在規則

select:{ 
    required: function(element) { 
    if($("#select").val() =='-1'){ 
     return false; 
    } else { 
     return true; 
    } 
    } 
} 
1

添加這或使用該元素的值:你爲什麼不使用的值

required: function(elm) { 
    if(elm.options[elm.options.selectedIndex].value != "-1") { 
     return true; 
    } else { 
     return false; 
    } 
} 
1

條件?

required: function(elm) { 
    return (elm.options[elm.options.selectedIndex].value != "-1"); 
} 

這與來自Robin的解決方案相同,但要短得多。

0

我們如何可以驗證的jQuery UI的選擇下拉

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
 
<script> 
 
$(".intselect").selectmenu(); 
 
$().ready(function() { 
 

 

 
jQuery.validator.setDefaults({ 
 
    debug: true, 
 
    success: "valid" 
 
}); 
 
$("#validateregister").validate({ 
 
    rules: { 
 
\t firstname: { 
 
     required: true 
 
    }, 
 
\t email: { 
 
     required: true, 
 
\t email: true 
 
    }, 
 
    year: { 
 
     required: true 
 
    } 
 
    } 
 
    
 
}); 
 
$('#validateregister').change(function() { 
 
     if ($("#validateregister").valid()) { 
 
      $(".go").removeAttr("disabled"); 
 
     } 
 
\t \t else{ 
 
\t \t \t $(".go").attr("disabled","disabled"); 
 
\t \t } 
 
    }); 
 
}); 
 
</script>
"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<form id="validateregister" style="width: 300px;"> 
 
    <div> <br /> 
 
    <input type="text" name="firstname" class="form-control" id="firstname" /> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="text" name="email" class="form-control" id="email" /> 
 
    </div> 
 
    <div> <br /> 
 
    <select class="form-control intselect" name="year" id="year"> 
 
     <option value="">Select year</option> 
 
     <option value="2014">2014</option> 
 
     <option value="2015">2015</option> 
 
     <option value="2016">2015</option> 
 
    </select> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="submit" class="btn btn-default go" value="submit" disabled> 
 
    </div> 
 
</form>

[jQuery驗證需要,選擇(的