2013-11-26 28 views
0

當提交後刷新頁面時,我的複選框爲空。我想讓他們檢查。我怎麼能在jQuery中做到這一點?Jquery複選框在提交時取消選中

這是我的jQuery代碼。

 $(document).ready(function() { 
      $(':checkbox.selectall').on('click', function() { 
       $(':checkbox[id="' + $(this).data('checkbox-name') + '"]').prop("checked", $(this).prop("checked")); 
       $("#frm1").submit(); 
      }); 
      $(':checkbox.checkme').on('click', function() { 
       var _selectall = $(this).prop("checked"); 
       if (_selectall) { 
        $(':checkbox[name="' + $(this).attr('name') + '"]').each(function (i) { 
         _selectall = $(this).prop("checked"); 
         return _selectall; 
        }); 
       } 
       $(':checkbox[name="' + $(this).data('select-all') + '"]').prop("checked", _selectall); 
       $("#frm1").submit(); 
      }); 
     }); 

我的HTML如下:...

<input type='checkbox' id='selectall' name='sa_subcatinput[]' value='$row[id]'  
    data-checkbox-name='$row[id]' class='selectall'/></label></a></li> 

<input type='checkbox' name='subcatinput[]' value='$test[id]' id='$test[category]' 
    class='checkme' data-select-all='sa_subcatinput[]'/> 
+0

如果它是一個php頁面,並且您將表單提交到同一頁面,只需使用發佈數據來設置創建它們的複選框的值。 – Archer

回答

0

,除非你發送一個值返回到你的網頁,其中顯示的複選框是checked.Since你說的頁面刷新你不能做到這一點,服務器通信發生了。所以你可以使用ajax來保持複選框被選中

0

傳遞一個查詢字符串參數的id或數字或值或任何選中的複選框。 使用服務器端代碼或客戶端JavaScript使用get參數函數(本網站上有很多)請求參數。

使用您的自定義函數和返回的值重新檢查框。

$('#ckeckbox1').val(unescape(getParam(document.URL,'checkbox1'))); 

function getParam(url,name) { 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(url); 
    if(results == null) 
    return ""; 
    else 
    return results[1]; 
} 

function removeParameter(url, parameter) { 
    var urlparts= url.split('?'); 
    if (urlparts.length>=2) { 
    var urlBase=urlparts.shift(); //get first part, and remove from array 
    var queryString=urlparts.join("?"); //join it back up 

    var prefix = encodeURIComponent(parameter)+'='; 
    var pars = queryString.split(/[&;]/g); 
    for (var i= pars.length; i-->0;)    //reverse iteration as may be destructive 
     if (pars[i].lastIndexOf(prefix, 0)!==-1) //idiom for string.startsWith 
      pars.splice(i, 1); 
    url = urlBase+'?'+pars.join('&'); 
    } 
    return url; 
} 
0

我能夠得到使用php的代碼。這是我在輸入中插入的代碼,以使其工作。

echo"<input type='checkbox' id='selectall' name='sa_subcatinput[]' value='$row[id]' 
    data-checkbox-name='$row[id]' class='selectall'"; 
    if (isset($_POST['sa_subcatinput'])) { 
     if (in_array($row['id'], $_POST['sa_subcatinput'])) { 
      echo"checked='checked'"; 
     } 
    } 
echo"/> 


echo"<input type='checkbox' name='subcatinput[]' value='$test[id]' 
    id='$test[category]' class='checkme' data-select-all='sa_subcatinput[]'"; 
    if (isset($_POST['subcatinput'])) { 
     if (in_array($test['id'], $_POST['subcatinput'])) { 
      echo"checked='checked'"; 
     } 
    } 
echo"/>