2012-03-29 48 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'); 
    } 
}); 

})的响应和行动;