0
votes

Comment désactiver le bouton d'envoi si j'ajoute # comme modèle dans un champ de mot de passe

Lorsque j'entre # n'importe où dans le champ de mon mot de passe, mon bouton d'envoi doit être désactivé. De plus, lorsque je supprime le # , le bouton d'envoi doit être affiché tel qu'il était à l'origine.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input id="edValue" type="password" oninput="edValueKeyPress()"><br><br>
  <input type="submit" id="IbValue"></span>
function edValueKeyPress() {
  var edValue = document.getElementById("edValue");
  var s = edValue.value;
  var IbValue = document.getElementById("IbValue");
  if (s == "#") {
    $('input[type="submit"]').prop('disabled', false)
  } else if (s == "#") {
    $('input[type="submit"]').prop('disabled', true)
  }
}


1 commentaires

Vos conditions if et else sont les mêmes.


3 Réponses :


2
votes

Activer la valeur - ici, j'utilise une expression régulière pour tester le contenu

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input id="edValue" type="password" /><br><br>
  <input type="submit" id="IbValue" />
</form>
window.addEventListener("load",function() {
  document.getElementById("edValue").addEventListener("input", function() {
    var invalid = /[#?]/g.test(this.value);
    document.getElementById("IbValue").disabled=invalid;
  })
})

Plain JS:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input id="edValue" type="password" /><br><br>
  <input type="submit" id="IbValue" />
</form>
$(function() {
  $("#edValue").on("input", function() {
    var invalid = /[#?]/g.test(this.value);
    $('#IbValue').prop('disabled', invalid);
  })
})


2 commentaires

Que faire si je souhaite exclure "?" ainsi que


Merci beaucoup



1
votes

Vous pouvez utiliser le retour de test en utilisant une regex pour désactiver ou non le bouton:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input id="edValue" type="password" oninput="edValueKeyPress()"><br><br>
  <input type="submit" id="IbValue"></span>
function edValueKeyPress() {
  const edValue = document.getElementById("edValue");
  $('input[type="submit"]').prop('disabled', (/\#/g).test(edValue.value))
}


0 commentaires

1
votes

Sans jQuery Ce sera plus simple - il suffit de changer le corps de edValueKeyPress en

<input id="edValue" type="password" oninput="edValueKeyPress()"><br><br>
<input type="submit" id="IbValue"></span>

function edValueKeyPress() {
  IbValue.disabled = edValue.value.match('#');
}
IbValue.disabled = edValue.value.match('#');


1 commentaires

Il serait toujours recommandé d'utiliser un gestionnaire d'événements discret au lieu d'un code en ligne