我有一个带有标签控件的页面,每个控件有近15个控件。在页面中总共有10个选项卡和大约150个控件(仅下拉列表,文本框,单选按钮,列表框等控件)。
我的要求是页面底部有一个按钮(提交)。我需要检查使用JavaScript,从该页面的150个控件中选择至少3个选项,而不管他们选择哪个选项卡。
请建议在我的aspx页面上用JavaScript完成这个最简单,最简单的方法。
答案 0 :(得分:4)
假设页面上只有一个表单(如果更多则循环通过表单并嵌套下面的循环)。
var selectedCount = 0;
var element;
for (var i = 0; i < document.forms[0].elements.length; i++)
{
element = document.forms[0].elements[i];
switch (element.type)
{
case 'text':
if (element.value.length > 0)
{
selectedCount++;
}
break;
case 'select-one':
if (element.selectedIndex > 0)
{
selectedCount++;
}
break;
//etc - add cases for checkbox, radio, etc.
}
}
答案 1 :(得分:0)
我会根据原型serialize方法查看一些内容 - 它可以为您提供所有表单控件的哈希值 - 它可能会让您对所需内容有所了解。
像firebug这样的东西会帮助你看到你得到的东西并评估它是否符合你的需求。
答案 2 :(得分:0)
您说您需要验证是否应该选择至少三个选项,但您是否有可能需要验证超过这三个选项?控件是否具有唯一的ID或类名?您使用的是特定框架(jQuery,Prototype等)吗?
在不了解您的项目的情况下,很难提出任何可靠的建议,但是使用纯JavaScript(没有框架),并且假设您拥有独特的类名,我会说......
这听起来像是一个非常通用的解决方案,但如果不了解您的设置,很难提供任何具体的代码。
答案 3 :(得分:0)
jQuery在页面上获取控件会简单得多:
var inputs = $('input');
var selects = $('select');
var textBoxes = $("input[type='text']");
答案 4 :(得分:0)
你真的应该考虑使用jquery来解决这个问题。它是免费的,所有酷的Javascript程序员最近都在使用它!
如果你使用jquery,你的问题变得非常简单。以下代码行将搜索整个页面,并在所选的任何位置返回列表项的数量。
var count = $("option:selected").length;