解決jquery下checked取值問題...


修改checkbox時..jquery在取checked值時總是出這樣那樣的問題....各個版本之間還有少許的差異....當向后台發送數據后,,再返回到當前頁時..checked的狀態始終不對...

一怒之下,給checkbox加一個isCheck,,不用那該死的checked屬性...一切OK了...代碼如下:

 

<!DOCTYPE html >
<html><head>
<meta charset="UTF-8">
<title>修復checkbox的狀態切換和動態取值的問題</title>
<script type="text/javascript" src="jquery.js"></script>
<style>
* {margin:0; padding:0;}
ul li { float:left; list-style:none; margin-left:20px;}
</style>
</head>
<body>
<form name="journal" id="journal" action="#" method="post">
<input name="cate_ids" value="" type="hidden">
    <ul>
        <li><input checked="checked" isCheck="true" class="ckbox" value="1" name="cate_id" type="checkbox">美食1</li>
        <li><input class="ckbox" value="2" name="cate_id" type="checkbox">美食2</li>
        <li><input class="ckbox" value="3" name="cate_id" type="checkbox">美食3</li>
        <li><input  checked="checked" isCheck="true" class="ckbox" value="4" name="cate_id" type="checkbox">美食4</li>
        <li><input  checked="checked" isCheck="true" class="ckbox" checked="checked" value="5" name="cate_id" type="checkbox">美食5</li>
     </ul>
        <div class="btn"> <input value="確認" name="sbtn" onclick="getValues()" type="button">
</form>
  
<script>
    //修復checkbox的狀態切換和動態取值的問題
    //為checkbox新增一個isCheck屬性來替換checked屬性的不兼容性
    $(".ckbox").click(function(){
        if($(this).attr("isCheck") == "true") {
            $(this).removeAttr("isCheck")
        } else {
            $(this).attr("isCheck", "true");
        }
    })
        function getValues()
        {
            var list="";
            $(".ckbox").each(function(){
                if($(this).attr("isCheck") == "true"){
                     list += $(this).val() + ",";
                }
            })
            alert(list);       
        }
    </script>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM