仅在较大的无线电组集中迭代特定的无线电组

发布于 2024-09-25 14:38:13 字数 747 浏览 6 评论 0原文

我有一个包含 26 个问题的表单,所有问题都有单选按钮组作为用户的答案选择(它计算给定财产上特定入侵植物物种的风险因素)。最后,将每个单选组中选定的值相加。

让事情变得复杂的是,用户可以选择填写 5 种不同入侵植物物种的调查问卷;换句话说,我有 26 行 5 列,最后我需要分别统计每一列。我通过使用 getElementsByClassName 来完成此操作,它在 Firefox 中就像一个魅力,但在 IE 中却不然。不幸的是,我正在做这件事的客户将 IE 作为他们的用户标准。我已经尝试了一些发布在网络上的通用 getElementsByClassName 函数,但它们似乎不起作用;我总是在页面上出现错误。

Firefox 中成功的功能是这样的:

function addSpecies1(frm, resultHolder)
{
var elems = frm.getElementsByClassName('species1'),
calculator = elems.length,
total = 0;
for(var i=0; i<calculator; i++)
if(elems[i].type=='radio' && elems[i].checked  && !isNaN(elems[i].value))
total+=parseFloat(elems[i].value);
resultHolder.value=total;
}

可能有一个非常简单的答案(我是初学者!),但我已经用头撞墙一个多星期了......

I have a form with 26 questions, all of which have radio button groups as an answer choice for the user (it calculates the risk factor for a specific invasive plant species on a given property). At the end, the selected value within each radio group is added up.

What makes it complicated is that the user has the option of filling in the questionnaire for 5 different invasive plant species; in other words, I have 26 rows and 5 columns, and at the end I need to tally up each column separately. I have done this by using getElementsByClassName, and it works like a charm in Firefox, but not in IE. And unfortunately the client I'm doing this for has IE as their user standard. I've tried a number of generic getElementsByClassName functions posted on the web, but they don't seem to work; I get Error on Page all the time.

The function successful in Firefox is like this:

function addSpecies1(frm, resultHolder)
{
var elems = frm.getElementsByClassName('species1'),
calculator = elems.length,
total = 0;
for(var i=0; i<calculator; i++)
if(elems[i].type=='radio' && elems[i].checked  && !isNaN(elems[i].value))
total+=parseFloat(elems[i].value);
resultHolder.value=total;
}

There's probably a very simply answer (I am a rank beginner!) but I've been banging my head against the wall for over a week...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风透绣罗衣 2024-10-02 14:38:13

最好和最简单的方法是使用jquery。它解决了大多数跨浏览器问题。
您可以使用 $('.species1') 执行 getElementsByClassName。

如果您不想使用jquery,您可以使用以下代码片段

var inputs = document.getElementsByTagName('INPUT');
var inputlen = inputs.length;
var result = new Array();

for(var i=0;i<inputlen;i++)
{
   if( inputs[i].className == 'species1' && input.checked)
      result.push(inputs[i]);
}

结果包含所有选定的物种1类复选框。您还可以使用循环来获取已检查的

best and easiest thing to do would be to use jquery. it takes care most cross browser issues.
you can do a getElementsByClassName using $('.species1').

If you do not want to use jquery you can use the following code snippet

var inputs = document.getElementsByTagName('INPUT');
var inputlen = inputs.length;
var result = new Array();

for(var i=0;i<inputlen;i++)
{
   if( inputs[i].className == 'species1' && input.checked)
      result.push(inputs[i]);
}

result contains all selected checkboxes with class species1. you can also use the loop to get checked ones

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文