jQuery 유효성 검사 필수 선택
jQuery Validate 플러그인을 사용하여 html select 요소의 유효성을 검사하려고합니다. "필수"규칙을 true로 설정했지만 기본적으로 0 인덱스가 선택되므로 항상 유효성 검사를 통과합니다. 필수 규칙에 사용되는 빈 값을 정의하는 방법이 있습니까?
UPD. 예. 다음과 같은 html 컨트롤이 있다고 상상해보십시오.
<select>
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
유효성 검사 플러그인이 "기본"값을 비워두기를 원합니다.
당신은 당신의 자신의 규칙을 작성할 수 있습니다!
// 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: "default" }
},
messages: {
SelectName: { valueNotEquals: "Please select an item!" }
}
});
더 쉬운 솔루션이 여기에 설명되어 있습니다 : 유효성 검사 선택 상자
값을 비우고 필수 속성을 추가하십시오.
<select id="select" class="required">
<option value="">Choose an option</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
<option value="option3">Option3</option>
</select>
가장 간단한 해결책
첫 번째 옵션의 값을 빈 문자열로 설정하십시오. value=""
<option value="">Choose...</option>
및 jquery 유효성 검사 required
규칙will work
최소 규칙 사용
첫 번째 옵션 값을 0으로 설정
'selectName':{min:1}
validate[required]
이 선택의 클래스 로만 입력 한 다음 value = ""옵션을 입력하면됩니다.
예를 들면 다음과 같습니다.
<select class="validate[required]">
<option value="">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
나는 질문이 제기 된 시간 (2010)에 플러그인이 어땠는지 모르겠지만 오늘 같은 문제에 직면하여 다음과 같이 해결했습니다.
선택 태그에 이름 속성을 제공하십시오. 예를 들어이 경우
<select name="myselect">
태그 옵션에서 value = "default"속성을 사용하는 대신 Andrew Coats가 제안한대로 기본 옵션을 비활성화하거나 value = ""를 설정하십시오.
<option disabled="disabled">Choose...</option>
또는
<option value="">Choose...</option>
플러그인 유효성 검사 규칙 설정
$( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });
또는
<select name="myselect" class="required">
Obs : Andrew Coats의 솔루션은 양식에 하나의 선택 항목이있는 경우에만 작동합니다. 솔루션이 둘 이상의 선택에서 작동하게하려면 선택에 이름 속성을 추가하십시오.
도움이 되길 바랍니다! :)
다음은 간단하고 이해하기 쉬운 예입니다.
<select class="design" id="sel" name="subject">
<option value="0">- Please Select -</option>
<option value="1"> Example1 </option>
<option value="2"> Example2 </option>
<option value="3"> Example3 </option>
<option value="4"> Example4 </option>
</select>
<label class="error" id="select_error" style="color:#FC2727"><b> Warning : You have to Select One Item.</b></label><td>
<input type="submit" name="sub" value="Gönder" class="">
JQuery :
jQuery(function() {
jQuery('.error').hide(); // Hide Warning Label.
jQuery("input[name=sub]").on("click", function() {
var returnvalue;
if(jQuery("select[name=subject]").val() == 0) {
jQuery("label#select_error").show(); // show Warning
jQuery("select#sel").focus(); // Focus the select box
returnvalue=false;
}
return returnvalue;
});
}); // you can change jQuery with $
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form id="myform">
<select class="form-control" name="user_type">
<option value="">Select</option>
<option value="2">1</option>
<option value="3">2</option>
</select>
</form>
<script>
$('#myform').validate({ // initialize the plugin
rules: {
user_type:{ required: true},
}
});
</script>
선택 값은 비어 있습니다
The solution mentioned by @JMP worked in my case with a little modification: I use element.value
instead of value
in the addmethod
.
$.validator.addMethod("valueNotEquals", function(value, element, arg){
// I use element.value instead value here, value parameter was always null
return arg != element.value;
}, "Value must not equal arg.");
// configure your validation
$("form").validate({
rules: {
SelectName: { valueNotEquals: "0" }
},
messages: {
SelectName: { valueNotEquals: "Please select an item!" }
}
});
It could be possible, that I have a special case here, but didn't track down the cause. But @JMP's solution should work in regular cases.
It's simple, you need to get the Select field value and it cannot be "default".
if($('select').val()=='default'){
alert('Please, choose an option');
return false;
}
how to validate the select "qualifica" it has 3 choose
$(document).ready(function(){
$('.validateForm').validate({
rules: {
fullname: 'required',
ragionesociale: 'required',
partitaiva: 'required',
recapitotelefonico: 'required',
qualifica: 'required',
email: {
required: true,
email: true
},
},
submitHandler: function(form) {
var fullname = $('#fullname').val(),
ragionesociale = $('#ragionesociale').val(),
partitaiva = $('#partitaiva').val(),
email = $('#email').val(),
recapitotelefonico = $('#recapitotelefonico').val(),
qualifica = $('#qualifica').val(),
dataString = 'fullname=' + fullname + '&ragionesociale=' + ragionesociale + '&partitaiva=' + partitaiva + '&email=' + email + '&recapitotelefonico=' + recapitotelefonico + '&qualifica=' + qualifica;
$.ajax({
type: "POST",
url: "util/sender.php",
data: dataString,
success: function() {
window.location.replace("./thank-you-page.php");
}
});
return false;
}
});
});
참고URL : https://stackoverflow.com/questions/2901125/jquery-validate-required-select
'IT story' 카테고리의 다른 글
JVM을 어떻게 중단합니까? (0) | 2020.06.18 |
---|---|
자바 스크립트 초에서 분 및 초 (0) | 2020.06.18 |
Brew를 사용하여 최신 버전의 Node를 설치하는 방법 (0) | 2020.06.18 |
MySQL에서 값이 숫자인지 감지 (0) | 2020.06.18 |
Javascript-innerHTML없이 컨테이너 요소에 HTML 추가 (0) | 2020.06.18 |