내 코드는 다음과 같습니다.
$(document).ready(function(){
jQuery.validator.addMethod("cents", function(value, element) {
return this.optional(element) || /^\d{0,12}(\.\d{0,2})?$/i.test(value);
}, "You must include two decimal places");
$.validator.addMethod('lessthan', function(value, element, param) {
return this.optional(element) || value <= $(param).val();
}, 'Invalid value');
$.validator.addMethod('greaterthan', function(value, element, param) {
return this.optional(element) || value >= $(param).val();
}, 'Invalid value');
$("#globalSettingsFormId").validate({
rules: {
// Validation Rules
minBetAmt: {
required: true,
number: true,
cents: true,
lessthan: '#maxBetAmt'
},
maxBetAmt: {
required: true,
number: true,
cents: true,
greaterthan: '#minBetAmt'
}
submitHandler: function(form){
form.submit();
},
messages: {
minBetAmt:{
required: "minimum bet amount required!",
number: "This must be a number!",
cents: "You must include two decimal places",
lessthan: 'Minimum Bet Amount must be less than Max Bet Amount!'
},
maxBetAmt: {
required: "Max bet amount required!!",
number: "This must be a number!",
cents: "You must include two decimal places",
greaterthan: "Max Bet Amount must be greater than Min Bet Amount!"
}
});
내 입력이 minBetAmt = 25.55이고 maxBetAmt = 26.5이면 내 양식이 유효성을 검사하고 제출합니다. 하지만 maxBetAmt를 241.55 또는 2400.25로 변경하면 "최대 베팅 금액이 최소 베팅 금액보다 커야합니다!"라는 메시지가 나옵니다.
내 addMethods에 문제가있는 것 같습니다. 어떤 사람들은 내 방법 'cents'의 반환 값에 문제가 있다고 말했습니다.
무엇이 잘못되었는지 알아낼 수 있도록 도와 줄 수 있습니까? 미리 감사드립니다!
값이 아닌 문자열의 데이터 정렬 순서를 비교하고 있습니다. 예를 들어 "25"는 "24000"보다 큽니다. "5"는 두 번째 문자에서 "4"보다 큽니다.
비교하기 전에 값을 부동 소수점 숫자 값으로 변환하십시오 .
$.validator.addMethod('lessthan', function(value, element, param) {
return this.optional(element) || parseFloat(value) <= parseFloat($(param).val());
}, 'Invalid value');
$.validator.addMethod('greaterthan', function(value, element, param) {
return this.optional(element) || parseFloat(value) >= parseFloat($(param).val());
}, 'Invalid value');
간단한 테스트 : http://jsfiddle.net/TrueBlueAussie/6g00am3c/1/
console.log("25" > "2400");
console.log(25.00 > 2400);
(콘솔 출력 확인)
true
false
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다