mirror of
https://github.com/jquery-validation/jquery-validation.git
synced 2025-12-24 12:13:59 +01:00
Core: dataRules method to convert value to number for number inputs
Updated dataRules method to convert value to number for number inputs. Proposed fix for #1378
This commit is contained in:
committed by
Jörn Zaefferer
parent
64cb211178
commit
fa5f69c529
20
src/core.js
20
src/core.js
@@ -1033,12 +1033,26 @@ $.extend( $.validator, {
|
||||
},
|
||||
|
||||
dataRules: function( element ) {
|
||||
var method, value,
|
||||
rules = {}, $element = $( element );
|
||||
var rules = {},
|
||||
$element = $( element ),
|
||||
type = element.getAttribute( "type" ),
|
||||
method, value;
|
||||
|
||||
for ( method in $.validator.methods ) {
|
||||
value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );
|
||||
if ( value !== undefined ) {
|
||||
|
||||
// convert the value to a number for number inputs, and for text for backwards compability
|
||||
// allows type="date" and others to be compared as strings
|
||||
if ( /min|max/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {
|
||||
value = Number( value );
|
||||
}
|
||||
|
||||
if ( value || value === 0 ) {
|
||||
rules[ method ] = value;
|
||||
} else if ( type === method && type !== "range" ) {
|
||||
// exception: the jquery validate 'range' method
|
||||
// does not test for the html5 'range' type
|
||||
rules[ method ] = true;
|
||||
}
|
||||
}
|
||||
return rules;
|
||||
|
||||
Reference in New Issue
Block a user