关闭

修改$("form:first").serialize(); 中某一名称的checkbox一个均未选择, 取不到name, 后台无法更新为null的错误

标签: nullinputfunctionbuttonc
5877人阅读 评论(0) 收藏 举报
分类:
<html>
<head>
    <script src="ec/jquery/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $.fn.extend({
            "fixedSerialize": function () {
                var $f = $(this);
                var data = $(this).serialize();
                var $chks = $(this).find(":checkbox:not(:checked)");    //取得所有未选中的checkbox

                if ($chks.length == 0) {
                    return data;
                }
                var nameArr = [];
                var tempStr = "";
                $chks.each(function () {
                    var chkName = $(this).attr("name"); 
                    if ($.inArray(chkName, nameArr) == -1 && $f.find(":checkbox[name='" + chkName + "']:checked").length == 0) {
                        nameArr.push(chkName);
                        tempStr += "&" + chkName + "=";
                    }
                });
                data += tempStr;
                return data;
            }
        });

        function test() {
            var data = $("form:first").fixedSerialize();
            alert(data);
        }
    </script>
</head>
<body>
<form id="myform" >
    <input type="text" name="YY" value="马医生" />
    <ul>
        <li>name为A:
            <input type="checkbox" name="A" checked="checked" value="A1" />A1
            <input type="checkbox" name="A"  value="A2" />A2
            <input type="checkbox" name="A" checked="checked" value="A3" />A3
        </li>
        <li>name为B:
            <input type="checkbox" name="B" checked="checked" value="B1" />B1
            <input type="checkbox" name="B" checked="checked" value="B2" />B2
            <input type="checkbox" name="B" value="B3" />B3
        </li>
        <li>name为C:
            <input type="checkbox" name="C" value="C1" />C1
            <input type="checkbox" name="C" value="C2" />C2
            <input type="checkbox" name="C" value="C3" />C3
        </li>
        <li>name为D:
            <input type="checkbox" name="D" value="D1" />D1
            <input type="checkbox" name="D" value="D2" />D2
            <input type="checkbox" name="D" value="D3" />D3
        </li>
    </ul>
    <input type="button" value="得到form中, 修改之后的serialize之后的值" onclick="test()" />
</form>
</body>
</html>


0
0

  相关文章推荐
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1792981次
    • 积分:24609
    • 等级:
    • 排名:第261名
    • 原创:719篇
    • 转载:295篇
    • 译文:0篇
    • 评论:173条