Jquery复选框在提交时取消选中

时间:2013-11-26 17:33:15

标签: php jquery checkbox submit

提交后页面刷新时,我的复选框为空。我想让他们检查一下。我怎么能在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[]'/>

3 个答案:

答案 0 :(得分:0)

除非您向页面发送一个值,指示要检查的复选框,否则您无法执行此操作。由于您说页面刷新,因此发生了服务器通信。因此,您可以使用ajax来选中复选框

答案 1 :(得分:0)

传递id或数字或值的querystring参数或任何已选中的复选框。 使用服务器端代码或使用get参数函数的客户端javascript请求参数(在此站点上有很多)。

使用您的自定义函数和返回的值重新检查该框。

$('#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;
}

答案 2 :(得分: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"/>