2012-03-29 3 views
-1

Для следующего кодаКак запустить условную функцию jquery?

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#erase").click(function(){ 
    confirm('Are you sure you want to erase it?'); 
    var data = { 
     "post": 123, 
    }; 
    $("#wrapper").load("<?php echo $url; ?>", data) 
}); 
}); 
</script> 

выше код возвращает confirmatio окно с двумя вариантами Ok и Отмена, когда пользователь нажимает на ссылку стирают. Но независимо от того, что они выбирают (Ok или Cancel), вызывается функция load(). Как я могу предотвратить функцию загрузки, если пользователь отказывается от действия?

ответ

3

Вы никогда не проверяете подтверждение. Вы должны хранить значение confirm() вызова, то, конечно же, тест против него:

var proceed = confirm('...'); 
if (proceed){ 
    // continue on 
} 

Короткие руки к вышесказанному будет избегать назначения первого (который также является вполне приемлемым):

if (confirm('...')){ 
    // proceed 
} 

Существует отличная запись на MDN около window.confirm с использованием примера.

0

confirm() возвращает true, если они нажали кнопку ОК или false, если они нажали кнопку Отмена. Перед продолжением проверьте значение.

if (confirm('Are you sure you want to erase it?')) 
    { 
     var data = { 
     "post": 123, 
     }; 
     $("#wrapper").load("<?php echo $url; ?>", data) 
    } 
1

, если вы хотите, чтобы вызвать эту функцию только тогда, когда пользователь нажимает кнопку «ОК», то вот код для этого

$("#erase").click(function(){ 
    if(confirm('Are you sure you want to erase it?')){ 

    var data = { 
    "post": 123, 
    }; 
    $("#wrapper").load("<?php echo $url; ?>", data) 
    } 


}); 
0

The «Confirm» JS-функция должна возвращать логическое значение, является ли пользователь выбрал «Ok» или «Cancel». просто заменить

confirm('Are you sure you want to erase it?') 

с

if(!confirm('Are you sure you want to erase it?')) 
    return; 

Надежда, что помогает!

0

Сделал быструю скрипку, чтобы помочь вам. http://jsfiddle.net/yPkuZ/

Вы должны сохранить реакцию и действия на его результаты

$(document).ready(function() { 
    $("#erase").click(function() { 
     reply = confirm('Are you sure you want to erase it?'); 
     if (reply) { 
      var data = { 
       "post": 123, 
     }; 
     $("#wrapper").load("<?php echo $url; ?>", data) 
    } else { 
     alert('do nothing'); 
    } 
}); 

});

Смежные вопросы