다음 입력이 있습니다.
<input type="number" class="form-control custom-values" name="Width" id="item-b" min="1201" max="1500" value="1361">
사용자가 입력 한 값이 최소 최대 경계 내에 있는지 확인하려고합니다. 그러나 나는 이상한 문제에 봉착했습니다.
이 스크립트를 사용하여 값을 확인할 때 :
if($(this).val() > $(this).attr("max") || $(this).val() < $(this).attr("min")){
alert("out of bounds");
all_custom_sizes_valid = false;
}else if($(this).val() < $(this).attr("max") || $(this).val() > $(this).attr("min")){
if(!all_custom_sizes_valid){
alert("fixed to in bounds");
all_custom_sizes_valid = true;
}else{
alert("in bounds");
}
}
일반적으로 잘 작동합니다.
그러나 입력 상자에 150을 입력하면 값이 범위 내에 있다는 경고가 표시됩니다. 150은 내가 이것을 할 수있는 유일한 숫자입니다.
또한 유효한 값으로 다시 변경할 때 유효성 검사가 제대로 업데이트되지 않고 "Fixed to in bounds"경고가 나타나지 않는 다른 문제도있었습니다.
어떤 통찰력이라도 대단히 감사하겠습니다.
문자열을 비교하고 있습니다. $(this).val()
및 둘 다 $(this).attr("max")
문자열입니다 ( min
속성 값 그대로 ).
시험에서이 방법을 보면,이 두 가지에 해당합니다 "150" > "1201"
및 "150" < "1500"
(당신은 브라우저 콘솔에서 시도 할 수 있습니다). parseInt()
비교할 수있는 정수 값을 가져 오는 데 사용할 수 있습니다 .
또 다른 문제는 || 대신 &&를 가져야한다는 것입니다. 비교 사이에 (당신은 분보다 커야 할 또한 최대보다 작은).
또한 변수에 값을 먼저 넣으면 더 멋지게 보일 것입니다 (최소한 :)) 값을 변수로 가져 오면 int 변환도 적용 할 수 있습니다 : var currentValue = parseInt($(this).val())
등.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다