2010-12-06 8 views
20

나는 양식 유효성 검사에 대한 jQuery를 검증 플러그인을 사용하고 난 목록을 확인할 수 없습니다입니다 옵션 "(기본값이며 값은 -1입니다). 따라서 첫 번째 옵션을 선택하면 유효성을 검사하지 않습니다. 어떻게 할 수 있습니까? 당신은 Jquery Validator custom rule을 사용할 수 있습니다jQuery를 검증 선택 상자

+0

가능한 중복 http://stackoverflow.com/questions/2901125/jquery-validate -required-select) –

답변

11

를 사용하여 빈 <option value="">Choose an option</option>보다는 -1

를 넣습니다.

유사한 예가 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"가 작동한다는 것을 알고 있지만이 대답 또한 유효합니다. 또한 오류 메시지를 사용자 정의 할 수있는 여지가 많습니다. –

19

JQuery와 유효성 검사를

rules: {      
       select: "required" 
} 
+0

유일한 것은, ""값을 지울 수 없습니다. –

+1

아마 가장 쉬운 방법 일 것입니다. – di3sel

4

이 규칙

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

도움을 주셔서 감사합니다, "dhanyawad" –

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의 해결책과 동일하지만 훨씬 짧습니다. 우리가 JQuery와 UI를 선택 드롭 다운에 대한 유효성을 검사 할 수 있습니다 방법

0

<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를 검증 필수 선택] (의