如果未选中所有复选框,如何重定向到下一页

时间:2014-01-22 13:26:10

标签: php jquery html ajax checkbox

我有html表见下面我的html表,如果用户点击标题中的图像,它将不会重定向它显示警告“请取消选中所有复选框”,如果用户取消选中所有复选框,则只重定向.my问题是它现在重定向,因为第一个td未选中,如果第一个td检查它显示警告,它只接受第一个td我想要所有td。可以任何一个指南。请看我的代码下面

enter image description here

AJAX

<script>

$(document).ready(function() {
    $("#redirect").click(function() {

        var chkBox=$("#checkAddress");

         if (chkBox.attr('checked') != 'checked')
        {

     var clientid=document.getElementById("client").value;

        $.blockUI(

       { 

         message: '<h2>Please wait...</h2><img src="/image/loader.gif" />',
     timeout: 2000

       }); 


    $.ajax({
            type:"post",

        data:"clientid="+clientid,
        success:function(data){

                         window.location = '?action=clientpricenotification&clientid='+clientid+'';
                          $("#result").html(data);
                         $('.blockUI').hide();
        }
    }); 
        }
        else
        {
            alert("Please uncheck all the td");
        }
    });
});

</script>

HTML

  <th style="text-align:center ;width:200px">Route Update</th>
    <th style="text-align:center ;width:90px">By(Emp)</th>
    <th style="text-align:center ; width:32px"> <img id='redirect'  src="/image/Picture12.png" style="margin:0px;cursor:pointer;"> </th>

 echo ' <td style="width:200px" id="CPH_GridView1_Status1'.$rows['id'].'" class="route status1 '.$rows["id"].' "><input type="checkbox" style="margin:0 0 0 93px;" id="checkAddress" '.$checked_value.' name="checkAddress" '.$checked_value.' ></td>       

 <td id="CPH_GridView1_user" style="width:90px" class="edit user '.$rows["id"].'">'.$rows["user"].'</td>    

<td style="width:65px" class=" '.$rows["id"].'"></td>';

3 个答案:

答案 0 :(得分:1)

这会在所有复选框上收听change()事件,因此当它找到0时,会重定向。

 var $checkbox = $("input[type=checkbox]");
 var url = "http://.....";
 $checkbox.change(function(){
   if( $checkbox.is(":checked").length == 0 ) { window.location=url; }
 });

您应该知道如何将其应用到您的代码中。

答案 1 :(得分:0)

使用document.getElementByTagname(“input”)..它将返回所有输入标签的列表,你必须循环遍历列表以检查每个复选框。现在你只检查你的第一个复选框...

    var allInputs = document.getElementsByTagName("input");
    for (var i = 0, max = allInputs.length; i < max; i++){
        if (allInputs[i].type === 'checkbox')
            if (allInputs[i].attr('checked') != 'checked'){
                   //your logic
                }
    }

答案 2 :(得分:0)

首先,您应将所有输入的ID定义为:

id="checkAddress_{anythingunique}"

然后

<script>
    var redir=1;
    $('input[id^="checkAddress_"]').each(function(){
        if(!$(this).attr('checked'))redire=0;
    });
    if(redir==1){
        //do your action
    }
</script>