Comment peut-val() Numéro de retour?
Dans le val
docs écrit cette description:
.val() Retourne: Chaîne de caractères, Nombre, Tableau
J'ai essayé d'obtenir un Number
, mais il semble de retour string
seulement, il y a une chose que je fais mal?
JS:
$('#gdoron').val('1');
alert($('#gdoron').val() === '1'); //true
alert(typeof $('#gdoron').val()); //string.
$('#gdoron').val(1);
alert($('#gdoron').val() === 1); //false
alert(typeof $('#gdoron').val()); //string (not "number"!)
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="gdoron" />
Ma question est: comment peut - val()
numéro de retour que les docs dit? La question n'est pas à propos de comment puis-je analyser la chaîne.
- Ne serait pas vous pensez que la valeur d'un
input type="text"
pour retourner une chaîne de caractères si? - peut-être, mais les docs dit qu'il peut retourner
number
, mais comment??? - Si vous avez un coup d'oeil à la source vous voyez que jQuery est l'appel de
elem.value
dans la plupart des cas. Dans le HTML4 et 5 normes, la valeur de retour devalue
pour l'entrée des éléments est défini commeDOMString
. Il y a peut être d'autres éléments qui renvoie un nombre à la place ou à certains enregistré crochets peuvent retourner un nombre à la place.
Vous devez vous connecter pour publier un commentaire.
Certains éléments HTML5 par exemple, les progrès;
JS:
HTML:
double
)."50"
sur Chrome.input
pas surprogress
...Number
pour moi en chrome 17 jsfiddle.net/feadfinput
,select
ettextarea
[...]. Maintenant, je ne suis pas un locuteur natif anglais, mais il me semble que ce n'est pas destiné à être une liste exhaustive.alert($("#prog").val() === 50);//false
etalert($("#prog").val() === '50'); //false
. COMMENT?chrome
ainsi. Comme vous l'avez écrit, impair...De saisie de texte du
value
attribut renvoie toujours une chaîne de caractères. Vous devezparseInt
la valeur pour obtenir un nombre entier:val
numéro de retour que les docs dit, non comment puis-je analyser la chaîne.J'ai fait un peu de rapide jeter un oeil, et je pense que j'ai une réponse. Si vous regardez à la mise en œuvre de la
val
function vous pouvez voir que si un soi-disant val-crochet est en place, si le val-crochet renvoie un nombre, ce nombre sera retourné-est de la fonction val. J'ai trouvé cette discussion qui suggère que val-crochets sont principalement utilisés par les plugins pour créer des contrôles personnalisés, tels que les curseurs, etc., d'où le "naturel" valeur de retour deval
pourrait être un nombre entier. Espérons que cela jette un peu de lumière sur votre question.<progress>
élément mentionné par @AlexK. utilise de tels crochet à l'intérieur de jQuery?$("<progress value='50' max='100'>").get(0).value === 50
.val()
pour renvoyer un nombre entier? Je ne suis pas bon en JS et/ou jQuery que je suis en mesure de résoudre moi-même sur un<input type="number" />
🙁Vous pouvez simplement créer un plugin jquery pour utiliser à la place du val (), pour ce faire. Ici, j'ai créer la fonction nval() à utiliser à la place du val() lors de l'extraction d'un des éléments de valeur.
Puis dans votre code, utilisez les éléments suivants pour obtenir la valeur comme un nombre
Number
comme le doc a dit. Et vous pouvez voir la accepté de répondre en montrant pourquoi ils ont écrit,<progress>
par exemple renvoie unNumber
nativement!.