一个checkbox,里面有两条数据:一条不可以删除,一条可以删除(都以实现),但是当选中两条数据同时删除时,系统会弹出不能删除的警告框,但是又执行了删除方法,我想选中两条数据同时删除时,只给出提示,不删除,求方法,我是用ajax从后台传值的

解决方案 »

  1.   

    function batch_do(entityName)
    {
    if (atleaseOneCheck()){
    var sign=0;
    var items = document.getElementsByName('projectConfigIds');
    if (items.length > 0) {
    for (var i = 0; i < items.length; i++) {
    if (items[i].checked == true){
       ajaxUtil.checkrequirmentIdByName(items[i].value,  function(data) {
         if (data == '1'){
    sign=1;
         alert("不能删除!");
         return false;
    //location.replace(location.href);
         }
         else if(data == '0')
         {
         var form = document.getElementById("moduleListForm");
     form.action = "config_deleteModule.action";
     form.submit();
         }
        
        
         });

       
        if(sign==1){
         break;
        }
       
    }
    }
    }
    } else {
    alert('请至少选择一个模块删除!');
    return;
    }
    }前台的js
      

  2.   

    我觉得二选一用radio好
    你可以设置一个boolean值,当两个都选时返回true,
    else if(data == '0')
    {
    //然后在这判断,如果是true,跳出这个块
    var form = document.getElementById("moduleListForm");
    form.action = "config_deleteModule.action";
    form.submit();
    }
      

  3.   

    if (items.length > 1) return ;
      

  4.   

    我觉得你不能把checkbox里选的东西,一条一条的发过去,要是多选就得一起发过去,server那边再实现个啊成action,才能达到你要的效果
      

  5.   

    ajaxUtil.checkrequirmentIdByName(items[i].value, function(data)
    看你这个好像是碰见不能删除的就不删了,但是能删除的就会去删除!
    你应该一下子吧数据传过去,不要一个一个的传,然后统一返回个状态值。
    用ajax的话用事务不好控制的!
      

  6.   


    都不删除的话,那就简单了你把你的代码逻辑改一下,
    for (var i = 0; i < items.length; i++) {
    if (items[i].checked == true){
    ajaxUtil.checkrequirmentIdByName(items[i].value, function(data) {if (data == '1'){
    sign=1;
    alert("不能删除!");
    return false;
    //location.replace(location.href);
    }
    else if(data == '0')
    {
    var form = document.getElementById("moduleListForm");
    form.action = "config_deleteModule.action";
    form.submit();
    }把这里红色部分的提交代码放到循环外面。。然后checkrequirmentIdByName方法的第一个参数传递数组值,一次性提交,后台逻辑检查参数数组是否有不可以删除的参数标记,如果有不可删除的,就返回,而不进行删除操作。没有的话,就执行删除
      

  7.   

    把ajax提交放到循环外面,直接按键功能都失效了
      

  8.   

    都不删除很简单的呀,,首先得到选中的checkbox数组,再循环,只要选中的checkbox中有不能删除的项,直接弹出“不能删除”,再return,否则将要删除的项的ID存储到1个变量中,在循环外面提交删除你ajax,又是form提交。。不懂
      

  9.   


    哎你的jquery的事件注册做相应的改动啊。我告诉你的是思路。