2011-06-21 14 views
7

Estoy mostrando un cuadro de confirmación en mi aplicación. Cuando el usuario hace clic en Okay, cierro la ventana
cuando el usuario hace clic en Cancel, no quiero hacer más que permanecer en la misma página.Cómo definir NO HACER NADA en JavaScript

¿Qué debo escribir en lugar de DO_NOTHING?

<a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():DO_NOTHING')">Close the application ?</a> 

Si lo mantengo vacío, no funciona. Si escribo una cadena aleatoria, funciona, pero muestra el error string undefined.

Respuesta

12

acabamos de esto en su lugar:

onclick="if (confirm('Do you wan to close the application ?')) window.close();" 

No existe ningún punto de utilizar el x?y:z si no va a utilizarla "totalmente".

16

Intente utilizar void(0)

<a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():void(0)')">Close the application ?</a> 
+0

Funcionó. Lamento haberlo revisado más tarde. – xyz

+1

'void' es un operador, no una función. No es necesario un operador de agrupación, por lo que 'void 0' es suficiente. Hay mejores respuestas a la pregunta, pero esta es mejor que la mayoría. – RobG

0

creo que simplemente return o return false debe hacer.

Normalmente no uso javascript en línea, si el código onClick estaba en una función adjunta al evento onClick, probablemente usaría Event.cancel() o similar ... (Si ese es el enlace real lo haría no hacer nada de todas formas si el evento burbujea a través, solamente saltar a un ancla en blanco no a EXISTEN)

+0

Si agrego algo de esto, incluso 'confirm' no se muestra. – xyz

-1

probar:

onclick="return confirm('Do you wan to close the application ?')" 
+1

-1 solo devolverá el valor pero no ejecutará 'window.close' .. así que si el usuario hace clic en" sí ", la página será redireccionada al href del enlace – pleasedontbelong

+0

¿Pero qué pasa con' window.close() '? –

3

tratar return false; o null

// What should I write in place of DO_NOTHING 
    <a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():return false')">Close the application ?</a> 
+0

Si agrego 'return false', incluso' confirm' no se muestra. agregando 'null' trabajado. Gracias Thor. – xyz

1

return false; debería hacer el truco.

0

probar un objeto vacío como esto

<a onclick="confirm('xyz')?window.close():{}">well</a> 

De hecho, cualquier cosa stupit como :function(){}eval() debe hacer bien el trabajo.

+0

Pero da error como 'x undefined'. – xyz

+0

Bueno, obviamente, me refiero a una variable existente x :) – mihsathe

+0

Ohh ... Entonces lo hará. Quería evitar el uso innecesario de otras variables. – xyz

2

void(0) o null estaría bien, pero considerar el uso de una llanura if(confirm(...))

+0

Thanks.adding 'null' trabajado :) – xyz

-1

condition ? function call : function call no es cómo:? Obras.

Debe ser

eval(condition? function call : function call/ blank string)

+2

eval es malo y realmente no tiene sentido usarlo aquí. –

+0

@ Shadow Wizard Acababa de publicar por qué el OP recibía el error. La forma en que el OP está usando no se ejecutará, como lo hacen algunas respuestas votaciones aquí :). URL de prueba http://jsfiddle.net/nhS2m/. Probado en ie8, ff 3.6 – amal

+0

de hecho, pero el problema es con 'void' no con ninguna función, mira aquí: http://jsfiddle.net/nhS2m/1/ funciona perfectamente con la función personalizada. –

Cuestiones relacionadas