web-dev-qa-db-fra.com

Si la valeur d'entrée est vide, attribuez une valeur de "vide" avec Javascript

J'ai donc un champ de saisie, s'il est vide, je veux que sa valeur soit les mots "vide", mais s'il y a une valeur entrée, je veux que la valeur soit la valeur entrée. Je veux utiliser javascript pour cela, une idée de comment cela peut être fait?

MISE À JOUR: Désolé, je ne pense pas l'avoir trop bien expliqué. Je ne parle pas de texte d'espace réservé. Je veux dire la valeur capturée de celui-ci. Donc, s'il est vide, le val () capturé car il doit être "vide", s'il est rempli, le val () capturé car il doit être que val ()

15
Maverick

Si vous utilisez du JS pur, vous pouvez simplement le faire comme:

var input = document.getElementById('myInput');

if(input.value.length == 0)
    input.value = "Empty";

Voici une démo: http://jsfiddle.net/nYtm8/

25
Jamie Dixon

Je suppose que c'est ce que tu veux ...

Lorsque le formulaire est soumis, vérifiez si la valeur est vide et si oui, envoyez une valeur = vide.

Si c'est le cas, vous pouvez effectuer les opérations suivantes avec jQuery.

$('form').submit(function(){
    var input = $('#test').val();
    if(input == ''){
         $('#test').val('empty');
    }    
});

HTML

<form> 
    <input id="test" type="text" />
</form>

http://jsfiddle.net/jasongennaro/NS6Ca/

Cliquez sur votre curseur dans la case, puis appuyez sur Entrée pour voir le formulaire soumettre la valeur.

4
Jason Gennaro

Vous pouvez définir une fonction de rappel pour l'événement onSubmit du formulaire et vérifier le contenu de chaque champ. S'il ne contient rien, vous pouvez le remplir avec la chaîne "vide":

<form name="my_form" action="validate.php" onsubmit="check()">
    <input type="text" name="text1" />
    <input type="submit" value="submit" />
</form>

et dans votre js:

function check() {
    if(document.forms["my_form"]["text1"].value == "")
        document.forms["my_form"]["text1"].value = "empty";
}
2
Daniel

Cela peut être fait en utilisant placeHolder de HTML5 ou en utilisant JavaScript. Commander ce message .

2
Varun Achar

Je pense que la façon la plus simple de résoudre ce problème, si vous n'en avez besoin que sur 1 ou 2 cases, est d'utiliser la fonction "onsubmit" de l'entrée HTML.

Vérifiez cela et je vais vous expliquer ce que cela fait:

<input type="text" name="val" onsubmit="if(this == ''){$this.val('empty');}" />

Nous avons donc créé la zone de texte HTML, lui avons attribué un nom ("val" dans ce cas), puis nous avons ajouté le code onsubmit, ce code vérifie si la zone de saisie actuelle est vide et si tel est le cas, lors de la soumission du formulaire, il le remplira avec les mots vide.

Veuillez noter, ce code devrait également fonctionner parfaitement lorsque vous utilisez la balise HTML "Placeholder" car la balise d'espace réservé n'affecte pas réellement de valeur à la zone de saisie.

1
Wackyedd

Tu peux le faire:

var getValue  = function (input, defaultValue) {
    return input.value || defaultValue;
};
1
katspaugh