2012-01-11 47 views
17

Necesito un javascript 'OK'/'Cancelar' alerta una vez que hago clic en un enlace.javascript popup alert on link click

que tienen el código de alerta:

<script type="text/javascript"> 
<!-- 
var answer = confirm ("Please click on OK to continue.") 
if (!answer) 
window.location="http://www.continue.com" 
// --> 
</script> 

Pero, ¿cómo puedo hacer que lo que esto sólo se ejecuta cuando hace clic en un enlace determinado?

Respuesta

10

acaba de hacer que funcione,

<script type="text/javascript"> 
function AlertIt() { 
var answer = confirm ("Please click on OK to continue.") 
if (answer) 
window.location="http://www.continue.com"; 
} 
</script> 

<a href="javascript:AlertIt();">click me</a> 
+1

gracias, si yo cancele si aunque aún abre el enlace/ – user1022585

+0

@ user1022585, debe 'devolver falso' para evitar que el enlace se desplace. Ver mi respuesta a continuación - el método 'Confirmar' devuelve un' booleano' que puede salir de su función con ... – xandercoded

+0

lo siento copié su código, y su código era incorrecto. si el usuario dice "ok" la respuesta establecerá "verdadero" entonces no necesitamos "!", lo cambié. – ocanal

3

Para ello es necesario para conectar el controlador a un anclaje específico de la página. Para operaciones como esta, es mucho más fácil usar un marco estándar como jQuery. Por ejemplo, si tuviera el siguiente código HTML

HTML:

<a id="theLink">Click Me</a> 

que podría utilizar el siguiente jQuery de la conexión de un evento de esta relación específica.

// Use ready to ensure document is loaded before running javascript 
$(document).ready(function() { 

    // The '#theLink' portion is a selector which matches a DOM element 
    // with the id 'theLink' and .click registers a call back for the 
    // element being clicked on 
    $('#theLink').click(function (event) { 

    // This stops the link from actually being followed which is the 
    // default action 
    event.preventDefault(); 

    var answer confirm("Please click OK to continue"); 
    if (!answer) { 
     window.location="http://www.continue.com" 
    } 
    }); 

}); 
25

Usted puede utilizar el atributo onclick, simplemente return false si no desea continuar;

<script type="text/javascript"> 
function confirm_alert(node) { 
    return confirm("Please click on OK to continue."); 
} 
</script> 
<a href="http://www.google.com" onclick="return confirm_alert(this);">Click Me</a> 
+0

Esto realmente está funcionando mucho mejor, una solución más general que debería ser aceptada. –

11

sola línea funciona bien:

<a href="http://example.com/" 
onclick="return confirm('Please click on OK to continue.');">click me</a> 

Adición de otra línea con un enlace diferente en la misma página que funciona muy bien también:

<a href="http://stackoverflow.com/" 
onclick="return confirm('Click on another OK to continue.');">another link</a> 
0
function alert() { 
    var answer = confirm ("Please click on OK to continue.") ; 

    if(answer){ 
     window.location="url"; 
    } 
} 
+1

Para aumentar la calidad de la respuesta (y, al hacerlo, no estar marcado), podría explicar por qué su código no funcionaba. Algunas veces las palabras ayudan más que el código. –

Cuestiones relacionadas