Je teste donc simplement quelque chose avec js, fondamentalement le nombre dans la première entrée doit être plus grand que le nombre dans la deuxième entrée pour que le bouton de soumission soit activé.
Le bouton est désactivé correctement, mais si je change le numéro, il ne se réactivera pas
<!DOCTYPE HTML>
<html>
<body>
<input type='number' id='first' onchange="validateNumber()"/><br>
<input type='number' id='second' onchange="validateNumber()"/><br>
<script type="text/javascript" >
function validateNumber()
{
var first = document.getElementById('first').value;
var second = document.getElementById('second').value;
if(first > second){
document.getElementById('sub').disabled=false;
}else{
document.getElementById('sub').disabled=true;
}
}
</script>
<input type="submit" id="sub"/>
</body>
</html>
Modifier: les flèches du déclencheur de saisie de nombre lors du changement semblent avoir causé le problème
3 réponses
Vous devez ajouter les événements onclick
et onkeyup
afin de répondre aux interactions de la souris et aux insertions du presse-papiers:
<input type='number' id='first' onkeyup="validateNumber()" onclick="validateNumber()" onchange="validateNumber()" />
<input type='number' id='second' onkeyup="validateNumber()" onclick="validateNumber()" onchange="validateNumber()" />
Vous pouvez utiliser onkeyup()
, car onchange()
n'est appelé que lorsque vous basculez le focus sur un autre élément.
De plus, votre fonction compare actuellement des chaînes. Utilisez parseInt pour convertir en entier, puis comparez. Le code suivant fonctionne pour moi:
<html>
<body>
<input type='number' id='first' onkeyup="validateNumber()"/><br>
<input type='number' id='second' onkeyup="validateNumber()"/><br>
<script type="text/javascript" >
function validateNumber()
{
var first = parseInt(document.getElementById('first').value, 10);
var second = parseInt(document.getElementById('second').value, 10);
if(first > second){
document.getElementById('sub').disabled=false;
} else {
document.getElementById('sub').disabled=true;
}
}
</script>
<input type="submit" id="sub" disabled="disabled" />
</body>
</html>
Essayez de lier les événements onfocus et onblur à.
<input type='number' id='first' onchange="validateNumber()" onfocus="validateNumber()" onblur="validateNumber()"/><br>
<input type='number' id='second' onchange="validateNumber()" onfocus="validateNumber()" onblur="validateNumber()"/><br>
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.