创建JSON以存储已选中复选框选项的好方法是什么?

时间:2014-04-14 12:36:17

标签: jquery json checkbox option

下面的代码根据选中的响应选项创建JSON字符串。我想将已检查的响应选项ID链接到问题ID,并允许包含多个响应选项。如果选择了两个选项,则JSON字符串如下所示{" question0":[" options0"," options1"]}。下面的代码有效,但是,我想知道是否有更紧凑,更清洁的方式来做我想要的。这种代码风格是可以的还是可以改进的? 感谢

HTML布局

<div id="survey">
    <div id="question0" class="question">Enter your question
        <br>
        <input id="options0" class="options-ready" type="checkbox">
        <label class="opt-label">Yes</label>
        <br>
        <input id="options1" class="options-ready" type="checkbox">
        <label class="opt-label">No</label>
        <br>
    </div>
    <div id="question1" class="question">Enter your question
        <br>
        <input id="options2" class="options-ready" type="checkbox">
        <label class="opt-label">Yes</label>
        <br>
        <input id="options3" class="options-ready" type="checkbox">
        <label class="opt-label">No</label>
        <br>
        <input type='button' class='survey-submit' value='submit'>
    </div>
</div>

JS代码来到这里:

    $(function() {
         $(".survey-submit").click(function () {
                 function checked(target) {
                     var arr = [];
                     target.each(function () {
                         if ($(this).prop("checked")) {
                             arr.push($(this).attr("id"));
                         } else {
                             return null;
                         }
                     });
                     return arr;
                 }
                 $(".question").each(function () {
                     var obj = {};
                     obj[$(this).attr("id")] = checked($(this).children(".options-ready"));
                     var json = JSON.stringify(obj);
                 });
});
});

0 个答案:

没有答案