首页 > 解决方案 > 如何从带有 xml 数据文件的单选按钮中获取值?

问题描述

我试图从 JS 上的单选按钮获取一个值,但不幸的是不知道......我想给出一个成绩分数,如果值相互匹配当将呈现的值与检查的值进行比较时。但我希望这段代码不能运行。我能修什么??我已经搜索了谷歌,但仍然挣扎太多时间。请帮我。谢谢。

对不起,我删除了我的代码,因为代码完全错误。

标签: html

解决方案


你可以试试下面的代码片段。

    function processXML(xhr) {
        let i;
        let xmldoc = xhr.responseXML;
        let display = "";
        let gradeCount = 0;
        let totalGrade = 0;
        let x = xmldoc.getElementsByTagName("question");
        for (i = 0; i < x.length; i++) {
            display += "<br>" + "<b>Question</b>" + " " + "<b>";
            display += x[i].getElementsByTagName("qnumber")[0].childNodes[0].nodeValue + "<br>" + "<br>";
            display += x[i].getElementsByTagName("qtitle")[0].childNodes[0].nodeValue + "</b>" + "<br>" + "<br>";
            if (i === 0) {
                display += "&nbsp&nbsp" + "<input class='radioSolution' type='radio' name='listAnswer' value='a' data-questionid='i'>" + "&nbsp&nbsp";
                display += "&nbsp&nbsp" + "A) " + x[i].getElementsByTagName("a")[0].childNodes[0].nodeValue + "<br>";
                display += "&nbsp&nbsp" + "<input class='radioSolution' type='radio' name='listAnswer' value='b' data-questionid='i'>" + "&nbsp&nbsp";
                display += "&nbsp&nbsp" + "B) " + x[i].getElementsByTagName("b")[0].childNodes[0].nodeValue + "<br>";
                display += "&nbsp&nbsp" + "<input class='radioSolution' type='radio' name='listAnswer' value='c' data-questionid='i'>" + "&nbsp&nbsp";
                display += "&nbsp&nbsp" + "C) " + x[i].getElementsByTagName("c")[0].childNodes[0].nodeValue + "<br>";
                display += "&nbsp&nbsp" + "<input class='radioSolution' type='radio' name='listAnswer' value='d' data-questionid='i'>" + "&nbsp&nbsp";
                display += "&nbsp&nbsp" + "D) " + x[i].getElementsByTagName("d")[0].childNodes[0].nodeValue + "<br>" + "<br>";
            }

       document.getElementById("display").innerHTML = display;
    }
}

function getSolution() {

var radioButtons = document.getElementsByClassName(".radioSolution"); for(var i=0; i < radioButtons.length; i++) { var currentElement = radioButtons[i]; if(currentElement.checked) { var questionId = currentElement.getAttribute('data-questionid'); var selectedAnswer = currentElement.value(); //这会将值设为“on”,而不是从值中读取,最好使用 data-* 属性并使用此行上方的代码来获取选定的值。//现在你有了 QuestionId 和答案,你可以继续下一步 }

}

注意 上面的代码使用 data-* 属性来设置问题 id,这样如果您在表单提交期间读取值,您可以一次获得所有解决方案。

此外,我们使用类名是为了便于从 dom 中读取元素。

getSolution()方法将处理来自 DOM 的元素并给出问题及其答案,以便您可以开始进一步处理。

高温高压


推荐阅读