J'ai essayé d'utiliser jQuery pour vérifier si la valeur d'une entrée de texte a changé, et si oui, si elle correspond à un mot prédéfini. J'ai essayé d'utiliser .focusout()
pour détecter les changements, comme conseille cette réponse, sans succès. J'ai pu détecter un changement, mais je n'ai pas pu comparer ce changement au mot prédéfini. Est-il possible de le faire avec jQuery, et si oui, comment?
$(document).ready(function() {
var code = $('#code');
// Save the initial value
$.data(code, "last", code.val());
// Setup the event
code.focusout(function() {
var last = $.data(code, "last");
if (last != $(this).val())
alert("changed");
var value = $("#code").attr('value');
if (value === "CODE") {
$(".upper").slideUp(1000);
$(".lower").slideUp(1000);
$(".main").css({
left: -1000
});
$(".test").css({
color: green
}); //Testing Property
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="ENTER" class="input" id="code">
<p class="test">Does it work?</p>
Merci!
3 réponses
Au lieu d'utiliser .attr('value')
, utilisez simplement .val()
$(document).ready(function() {
var code = $('#code');
// Save the initial value
$.data(code, "last", code.val());
// Setup the event
code.focusout(function() {
var last = $.data(code, "last");
if (last != $(this).val())
alert("changed");
var value = $("#code").val();
if (value === "CODE") {
alert("CODE!");
$(".upper").slideUp(1000);
$(".lower").slideUp(1000);
$(".main").css({
left: -1000
});
$(".test").css({
color: green
}); //Testing Property
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="ENTER" class="input" id="code">
<p class="test">Does it work?</p>
$(document).ready(function() {
var code = $('#code');
var lastWord = "";
// Setup the event
code.focusout(function() {
var value = $("#code").attr('value');
if(value === lastWord){
alert("No change");
}else{
alert("Change")
}
lastWord = value;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="ENTER" class="input" id="code">
<p class="test">Does it work?</p>
Fondamentalement, vous commencez avec une chaîne vide comme votre «dernier code», puis en vous concentrant sur, vous comparez votre valeur à votre dernier mot, si ces correspondances, il n'y avait aucun changement. Lorsque vous avez terminé la comparaison, vous définissez votre lastWord sur votre valeur.
Définissez à nouveau la valeur last
si la valeur a changé. Et vous n'avez spécifié aucune valeur de départ, donc votre valeur de départ sera vide.
$(document).ready(function() {
var code = $('#code');
// Save the initial value
$.data(code, "last", code.val());
// Setup the event
code.focusout(function() {
var last = $.data(code, "last");
if (last != $(this).val()){
$.data(code, "last", code.val());
alert("changed");
}
var value = $("#code").attr('value');
if (value === "CODE") {
$(".upper").slideUp(1000);
$(".lower").slideUp(1000);
$(".main").css({
left: -1000
});
$(".test").css({
color: green
}); //Testing Property
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="ENTER" class="input" id="code">
<p class="test">Does it work?</p>
Questions connexes
Questions liées
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.