2 votes

Obtenir la valeur d'un caractère générique dans un champ de saisie vide avec jquery ?

Il y a quelque chose de bizarre et je suis perplexe.

Lorsque j'ai un champ d'entrée avec un caractère de remplacement, par exemple

<input id="box1" placeholder="not applicable">

J'ai toujours été en mesure de saisir l'entrée de l'utilisateur, ou si l'entrée est laissée vide la valeur de l'espace réservé avec jquery comme tel :

var text = $('#box1').val();

Pas de problème. Utilisation de Jquery .val() faisait toujours l'affaire. Puis j'ai commencé à voir des erreurs de sortie de code dans des applications qui fonctionnaient auparavant, dans lesquelles les entrées vides ne capturaient pas la valeur de l'espace réservé.

Est-ce que quelque chose a changé avec le moteur javascript qui pourrait expliquer cela ? Ou existe-t-il un nouveau moyen d'obtenir la valeur de l'espace réservé si le champ de saisie est vide ?

Voir cet exemple :

$('#done').on('click', function(){
      if($('#box3').val() == ''){
            var box3 = $(this).data('placeholder');
        } else {
        var box3 = $('#box3').val();
        }
  $('#output').val(box3);
});

// Clicking the button doesn't capture the placeholder value if empty?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<input id="box3" placeholder="not applicable">
<br><br>
<button id="done">
Done
</button>
<br><br>
<textarea id="output"></textarea>
<br><br>
<p>
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1?
</p>

3voto

isherwood Points 14643

Utilice attr('placeholder') . De même, votre utilisation de this à l'intérieur de la if La déclaration était erronée. Elle faisait référence au sujet de la click fonction.

$('#done').on('click', function(){
      if($('#box3').val() == ''){
            var box3 = $('#box3').attr('placeholder');
        } else {
           var box3 = $('#box3').val();
        }
  $('#output').val(box3);
});

// Clicking the button doesn't capture the placeholder value if empty?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<input id="box3" placeholder="not applicable">
<br><br>
<button id="done">
Done
</button>
<br><br>
<textarea id="output"></textarea>
<br><br>
<p>
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1?
</p>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X