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)
}
}
3 Réponses :
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);
})
})
Que faire si je souhaite exclure "?" ainsi que
Merci beaucoup
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))
}
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('#');
Il serait toujours recommandé d'utiliser un gestionnaire d'événements discret au lieu d'un code en ligne
Vos conditions if et else sont les mêmes.