2012-03-29 58 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窗口兩個選項確定,並且當用戶點擊鏈接擦除上的取消。但是不管他們選擇什麼(確定或取消),load()函數都會被調用。如果用戶選擇了操作,我該如何防止加載函數?

回答

3

你永遠不會測試確認。您需要存儲一個confirm()呼叫的值然後,當然,測試反對:

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

短手上述將首先避免了分配(這也是完全可以接受的):

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

關於window.confirm有一個很好的寫在MDN上的例子用法。

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

「確認」 JS-函數的代碼應該返回一個布爾值是否用戶選擇了「確定」或「取消」。 只需更換

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'); 
    } 
}); 

})的響應和行動;