J'ai le suivant
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
confirm('Dialogue');
}
});
Mais je voudrais bool la fonction de confirmation. J'ai déjà essayé
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
Mais aucune boîte de confirmation n'est générée. Comment puis-je accomplir cela?
Vous avez quelques problèmes. Le premier problème est que vous définissez une variable avec le nom confirm
. Pas bon! Renommez-le isGood
ou quelque chose d'autre.
L'autre bug est juste ici:
if (confirm=true) {
confirm=true
est une cession, pas une comparaison.
Il doit être
if (confirm==true) {
ou juste
if (confirm) {
Donc, votre code serait quelque chose comme
var bar = "bar";
$("button").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var isGood=confirm('Dialogue');
if (isGood) {
alert('true');
} else {
alert('false');
}
}
});
if( !confirm('Are you sure you want to continue?')) {
return false;
}
Tous les commentaires concernant la comparaison sont corrects, cependant, la raison pour laquelle la boîte de dialogue de confirmation ne s'affiche pas est que vous effacez l'objet de la boîte de confirmation.
Changez le nom de la confirm
var.
$(element).click(function() {
var confirm1 = confirm('Dialogue');
if (confirm1) {
alert('true');
} else {
alert('false');
}
});
Comparez cela à celui qui ne fonctionne pas.
$(element).click(function() {
var confirm = confirm('Dialogue');
if (confirm) {
alert('true');
} else {
alert('false');
}
});
Lorsque vous déclarez une variable n'importe où dans votre fonction, elle est automatiquement "extraite" en tant que variable locale. Lorsque vous appelez confirm en tant que fonction, il trouve d'abord la variable locale (qui n'a pas encore été définie) et ne monte pas dans la chaîne d'étendue jusqu'à window
où la fonction habite.
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
est le même que
$("element").click(function() {
var foo=bar, confirm = undefined;
if ( foo == "bar" ) {
confirm=confirm('Dialogue');
...
});
Vous pouvez 1) renommer votre variable, 2) appeler window.confirm("Dialog")
pour lui dire que vous voulez utiliser la fonction globale au lieu de la variable locale ou 3) mettre simplement l'appel de confirmation dans un if
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
if (confirm('Dialogue')) {
alert('true');
} else {
alert('false');
}
}
});
essayer
if (confirm) {
alert('true');
} else {
alert('false');
}
Mon premier problème est que votre principal problème réside ici
var foo=bar;
if ( foo == "bar" ) {
qu'est-ce que le bar? Je crois que vous aviez l’intention de faire l’affectation suivante var foo="bar";
qui ferait que l’instruction if s’évaluerait comme étant vraie et exécuterait la boîte de dialogue de confirmation.
De plus, ce qui suit est inexact
var confirm = confirm("dialog");
if (confirm=true)
juste utiliser ceci:
if (confirm("dialog"))
Ajoutez la classe .confirm
à un élément puis en écriture jQuery.
$('.confirm').click(function() {
return confirm("Are you sure?");
});