Ce devrait définition d'une zone de texte HTML de la valeur à null?
Nous avons une réponse JSON qui peut contenir des valeurs null (par exemple, { mavaleur: null }) - nous attribuer cette valeur à une zone de texte dans un formulaire: (en fait, nous utilisons JQuery, mais c'est l'équivalent
var nullString = null;
document.getElementById('myInput').value = nullString;
Si nous affecter cette valeur à une zone de texte HTML de valeur, le comportement semble navigateur:
- Firefox et Chrome à la fois d'afficher une zone de texte vide, et quand vous lisez "valeur" arrière, vous obtenez la valeur null.
- IE met la chaîne 'null', dans la zone de texte, et, quand vous lisez "valeur" de retour, vous obtenez la chaîne de la valeur "null" (c'est à dire le réglage de la "valeur" et en les lisant a modifié les données)
(C'est par ici: http://jsbin.com/uleno/edit si quelqu'un veut l'essayer)
Navigateur qui est en train de faire la bonne chose ici, ou est-ce un comportement indéterminé? Et est-il plus malin, plus élégant solution que de faire beaucoup d' (mavaleur == null ? ": mavaleur) des trucs?
OriginalL'auteur Will Dean | 2009-04-28
Vous devez vous connecter pour publier un commentaire.
Ce qui se passe réellement est l'objet nul est stringified, comme null.toString(). Dans un alert() de la boîte de message, le navigateur interprète généralement l'objet au lieu de simplement stringifying, de sorte que le résultat sera différent. Et, bien sûr, les navigateurs (en particulier IE) interpréter et stringify différemment.
Pour ce que ça vaut, il y a une logique à retourner null lorsqu'une chaîne est prévu. Tout ce qui est de retourner cette valeur n'est probablement dans le but de fournir une valeur false pour facile conditionnelle de test, tout en indiquant que le résultat est vide plutôt que, par exemple, indéfini. DOM méthodes qui retournent des objets de collection en faire de même. De plus, bien qu'un littéral de chaîne vide (") est une fausse valeur, une Chaîne vide d'objet (new String(")) n'est pas; et ce dernier peut être créé à partir de l'ancien accidentellement avec la poursuite du traitement. De sorte que la "sécurité" façon de prévenir la consommation code de jeter accidentellement de la validité d'une chaîne est de retourner une chaîne de caractères littérale ou objet de type String dans un cas, et la valeur null dans un autre.
OriginalL'auteur Anonymous
En fait, la chose la plus simple à faire est ceci:
Vous savez que la valeur doit obtient une chaîne affectée si son autre 'falsy'* de la valeur, vous renvoie une chaîne vide.
* null, undefined, 0, false, "
OriginalL'auteur
Je ne suis pas sûr que ma solution va travailler pour vous mais ici, c'est un coup à ce problème, qui je dois avouer est nouveau pour moi. Son principal avantage est de ne pas encombrer le code et que vous aurez un endroit unique qui gère cette logique. C'est IE pour autant que je sais.
À mon avis, il ne fait pas de sens pour régler sa valeur à la chaîne "null" aussi longtemps que vous êtes un réglage à la valeur null littérale. D'autre part les deux FF et Chrome comportement un peu étrange, car un simple "alert(null)" la chaîne "null" plutôt que rien, alors que la forme de l'élément de comportement est différent. Donc je suppose que IE est plus cohérente à cet égard, bien qu'il n'est pas utile.
OriginalL'auteur Ionuț G. Stan
Pourquoi ne pas utiliser une chaîne vide? Tout d'abord, la garniture de la valeur. Ensuite, vérifiez la chaîne vide.
OriginalL'auteur Daniel A. White