style - javascript create css class on the fly
else si javascript (5)
Así es como se hace correctamente:
<script type="text/javascript">
function submitOrder() {
var companyName = prompt("Please enter company name.", "");
var willOrderPackage = confirm("Would you like to order a Web Design package today?");
if (willOrderPackage) {
alert("Thank you for your order.");
}else{
alert("We appreciate your time.");
}
}
</script>
Cosas que hice:
- estilo de codificación modernizado
- cambiado a tipo de atributo en lugar de lenguaje
- puntos y comas añadidos en cada línea final
- eliminado redundante
if
palabra clave - agregó un corchete de cierre que originalmente faltaba
- quitó la comparación con una cadena verdadera, la comparación con valores booleanos no necesita esto
Tengo una función simple que se supone que solicita al usuario el nombre de la empresa, seguido de un cuadro de mensaje de confirmación que le pregunta al usuario "¿Desea solicitar un paquete de diseño web hoy?" El problema está en mis declaraciones ''if'' y ''else if''. La declaración ''if'' debe mostrar un cuadro de alerta "Gracias por su pedido" cuando el usuario hace clic en ''Aceptar''; y una declaración ''else if'' que debería mostrar un cuadro de alerta "Agradecemos su tiempo" cuando el usuario hace clic en ''Cancelar''. La función es invocada por un script onClick. Aparecen los cuadros de confirmación y de confirmación, pero no puedo entender por qué no aparecen las casillas if if y else. ¿Qué me estoy perdiendo? Cualquier ayuda es apreciada. Gracias.
<SCRIPT language = "Javascript">
function submitOrder() {
var companyName = prompt("Please enter company name.", "")
var willOrderPackage = confirm("Would you like to order a Web Design package today?")
if (willOrderPackage == "true") {
alert("Thank you for your order.")
}else if{
alert("We appreciate your time.")
}
</SCRIPT>
Cambiar a:
if (willOrderPackage) {
alert("Thank you for your order.")
}else{
alert("We appreciate your time.")
}
En realidad, hay dos construcciones if..else diferentes. El primero es un if-else simple:
if ( condition ) {
// Do stuff if condition is true
} else {
// Do stuff if condition is not true
}
El siguiente es un if-else-if:
if ( condition ) {
// Do stuff if condition is true
} else if ( differentCondition ) {
// Do stuff if differentCondition is true
} else {
// Do stuff if neither condition nor differentCondition is true
}
También puede usar else, si tantas veces como desee, por ejemplo:
if ( condition ) {
// Do stuff
} else if ( condition2 ) {
// etc
} else if ( condition3 ) {
// etc
} else if ( condition4 ) {
// etc
} else {
// etc
}
Y cada parte de un if..else es opcional, excepto para el bloque if inicial. Entonces, si no quieres hacer nada si la condition
no es verdadera, puedes omitir por completo el bloque else:
if ( condition ) {
// do stuff if condition is true
}
HTH
Yendo más allá de su pregunta por un momento, la expresión que se evalúa en la condición de su declaración if es un poco vacilante.
willOrderPackage siempre será true
o false
, pero es importante tener en cuenta que true
y "true"
o false
y "false"
son diferentes. El primero es booleano, el segundo es una cadena.
Entonces, tu declaración if debería estar preguntando:
if ( willOrderPackage == true ) {
Incluso mejor que eso, cuando evalúas una expresión en una instrucción if, hay un == true
al final de la misma que es invisible. Por ejemplo:
if ( willOrderPackage == true ) {
se interpretaría como:
if ( (willOrderPackage == true) == true )
El beneficio de esto es que puedes omitir el bit entero == true
de tu código, así que puedes escribir:
if ( willOrderPackage ) {
Y de hecho todavía dices "if willOrderPackage is true"
Espero que ayude a aclarar algunas cosas para ti.
su else if
no tiene ninguna condición, use else
como se dijo
if (willOrderPackage == "true") {
alert("Thank you for your order.")
es incorrecto: willOrderPackage es un booleano por lo que puede ser
(willOrderPackage == true)
o mejor
(willOrderPackage)
también es mejor usar:
if (willOrderPackage) {
en lugar de :
if (willOrderPackage == "true") {