javascript - 在测验结束时显示用户答案

标签 javascript jquery json

我创建了一个简单的测验,并将用户的答案存储在数据库中。我可以访问 json 格式的答案,如下所示:

{
    "form":{
        "1":{
            "M1_Q1PRE":{
                "a1":"a1"
            }
        },
        "2":{
            "M1_Q2PRE":{
               "a2":"a2"
            }
        },
        "3":{
            "M1_Q3PRE":{
                "a2":"a2",
                "a4":"a4"
            }
         }
    }
}

(问题 3 是多选复选框)

我正在尝试在测验结束时构建一个页面,该页面将显示所有问题以及用户选择的所选答案。我想对最后一页进行硬编码:

<p>Question One</p>
<ol type="a">
    <li>
        <label>
            <input type="radio" name="M1_Q1PRE" value="a1"> answer a
        </label>
    </li>
    <li>
        <label>
            <input type="radio" name="M1_Q1PRE" value="a2"> answer b
        </label>
    </li>
</ol>
<p>Question Two</p>
<ol type="a">
    <li>
        <label>
            <input type="radio" name="M1_Q2PRE" value="a1"> answer a
        </label>
    </li>
    <li>
        <label>
            <input type="radio" name="M1_Q2PRE" value="a2"> answer b
        </label>
    </li>
</ol>
<p>Question Three</p>
<ol type="a">
    <li>
        <label>
            <input type="checkbox" name="M1_Q3PRE" value="a1"> answer a
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="M1_Q3PRE" value="a2"> answer b
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="M1_Q3PRE" value="a3"> answer c
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="M1_Q3PRE" value="a4"> answer d
        </label>
    </li>
</ol>

我想做的是突出显示/检查用户使用 json 结果选择的答案。我无法编辑 json,因为后端是为其他东西构建的,我正在尝试将其重新用于此测验。有谁知道解析 json 并使用它自动填充用户答案的​​方法吗?

这是一个 jsfiddle:http://jsfiddle.net/mtca9kax/

谢谢, S

编辑

http://jsfiddle.net/mtca9kax/2/

我更新了我的 fiddle 以包含更准确的 json 响应。还有一些问题有多个答案(请参阅 Q2……很多 T/F)。我已经开始工作了,但不知道如何遍历数据。

最佳答案

我会这样做:

您必须循环进入您的 json 响应,并使用这些值来选择正确的答案。

$.each(results.form, function (ind, val) {
    $.each(val, function (inde, value) {
        $.each(value, function (index, radio) {
            //console.log(radio);
            $('input[name="'+ inde +'"][value="'+ radio +'"]').prop("checked", true);
        });
    });
});

FIDDLE .

关于javascript - 在测验结束时显示用户答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25869511/

相关文章:

javascript - 我可以使用 JavaScript 生成 RSS (XML) 页面吗?

javascript - 如何使用加载时的 react 进行字母排序?

javascript - 使用 JavaScript 或 jQuery 将 json 的某些部分转换为数组

python - 如何将 SqlAlchemy 连接查询序列化为 JSON?

json - 快速登录应用程序后,主视图 Controller 没有响应

java - 如何更改从 JSON Schema 生成的 POJO 的格式?

javascript - Angular 4 : How to read content of text file with HTTPClient

javascript - 如何使用 Jest 模拟第三方库

javascript - 从不谈论填充普通 View

jquery - 如何以编程方式关注移动 safari 页面加载时的文本字段?