首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组数据放入表- jquery中

将数组数据放入表- jquery中
EN

Stack Overflow用户
提问于 2014-09-11 12:05:11
回答 1查看 64关注 0票数 0

asp:DataList生成了下面的html。A&A格式,其中每组都有Qno、问号和选项。

代码语言:javascript
复制
 //Repeating Set
<table id="tblQuestions" class="tblQuestions">
 <tr><td><span class="lbQno">1</span><span>First question</span></td></tr>
 <tr>
  <td>
    <table class="clOptions">
     <tr>
      <td><input type="radio" value="1/><label>sometext</label</td>
      <td><input type="radio" value="2/><label>sometext</label</td>
      <td><input type="radio" value="3/><label>sometext</label</td>
     </tr>
    </table>
  </td>
 </tr>
</table>

在一个按钮点击,我想检查所有的问题都得到了答案。

JS:

代码语言:javascript
复制
//Get the questionslist
//Loop thro' them, assigning each list to a table.
// and then get the Qno and optionslist in that table

var QuestionsList = document.getElementsByClassName("tblQuestions");
function AllQuestionsAnswered() {

   for(var i = 0;i<QuestionsList.length;i++)
   {
      var tbl = QuestionsList[i];                    
      var OptionsList = $('tbl.clOptions input:radio');

      $('tbl tr').each(function () {
             var QuestionNo = $(this).find('.lbQno').text();
             if(QuestionId > 0){                 
              //perform check on each radiobutton of question
             }                        
      });
   }
}

我在如何获得控制上失败了。for循环中的所有3个定义都不能工作。我该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-11 13:06:13

让我们假设您可以纠正HTML的所有问题:

  • 缺少"input值。
  • 缺少nameinputs。
  • 丢失> for </label>

然后,您可以使用此代码检查所有必要的问题。

  • 过滤所有应该检查的问题(基于.lbQno文本)。
  • 对于每个已过滤的问题:
    • 获取当前问题所选单选按钮的长度。
    • 如果没有选定的单选按钮(length等于0),则显示错误并停止检查。

JavaScript:

代码语言:javascript
复制
$(document).ready(function()
{
    function filterElement()
    {
        return parseInt($(this).find(".lbQno").text()) > 0;
    }

    $('#check').click(function()
    {
        $(".tblQuestions").filter(filterElement).each(function()
        {
            var checkedCount = $(this).find('.clOptions input:radio:checked').length;
            if (!checkedCount)
            {
                alert($(this).find(".lbQno").next().text() + " is not answered");
                return false;
            }
        });
    });
});

小提琴

相关HTML:

代码语言:javascript
复制
<table id="tblQuestions1" class="tblQuestions">
 <tr><td><span class="lbQno">1</span><span>First question</span></td></tr>
 <tr>
  <td>
    <table class="clOptions">
     <tr>
      <td><input type="radio" name="q1" value="1"/><label>sometext</label></td>
      <td><input type="radio" name="q1" value="2"/><label>sometext</label></td>
      <td><input type="radio" name="q1" value="3"/><label>sometext</label></td>
     </tr>
    </table>
  </td>
 </tr>
</table>

<table id="tblQuestions2" class="tblQuestions">
 <tr><td><span class="lbQno">1</span><span>Second question</span></td></tr>
 <tr>
  <td>
    <table class="clOptions">
     <tr>
      <td><input type="radio" name="q2" value="1"/><label>sometext</label></td>
      <td><input type="radio" name="q2" value="2"/><label>sometext</label></td>
      <td><input type="radio" name="q2" value="3"/><label>sometext</label></td>
     </tr>
    </table>
  </td>
 </tr>
</table>

<table id="tblQuestions3" class="tblQuestions">
 <tr><td><span class="lbQno">0</span><span>Unnecessary question</span></td></tr>
 <tr>
  <td>
    <table class="clOptions">
     <tr>
      <td><input type="radio" name="q0" value="1"/><label>sometext</label></td>
      <td><input type="radio" name="q0" value="2"/><label>sometext</label></td>
      <td><input type="radio" name="q0" value="3"/><label>sometext</label></td>
     </tr>
    </table>
  </td>
 </tr>
</table>

<input id="check" type="button" value="check"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25787022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档