当只选择一个项目时,如何处理具有多个项目的选择
How to handle a select with multiple items when only one item is selected
我有一个select表单元素,它接受多个项目。
当表单提交时,我将项目添加到一个数组中,然后处理它们,然后在数组中运行,对每个项目执行操作。
当只选择一个项目时,我遇到了一个问题。
当一个项目通过时,数组的长度不是1,而是所选项目中的字符数。
function processForm(formObject){
var list = [];
list = formObject.listElement;
for (var i=0;i<list.length;i++) {
Logger.log(list[i]);
}
}
如果在表单中选择了多个项目,则上面会记录每个项目。如果只选择了一个项目,那么长度就是该项目中的字符数。如果只选择了一个项,我们将其视为具有一个项的数组,我该如何解决此问题?
您有:
var list = [];
它将一个空数组分配给列表,然后:
list = formObject.listElement
将其替换为formObject.listElement返回的内容,因此初始赋值毫无意义。
您还没有指出listElement是什么类型的控件,它可能是Class MultipleChoiceItem或Class ListItem。两者都有一个getChoices方法,该方法返回一个选项数组。
如果使用该方法,则不需要测试返回值是否为数组,它应该始终是一个(可能为空)数组:
list = formObject.listElement.getChoices();
假设listElement是上述对象之一。
将字符串当作数组进行迭代,可以得到所描述的行为。你可以先转换一个数组,如果它还不是一个
var list = formObject.listElement;
if (!Array.isArray(list)) list = [list];
相关文章:
- 使用JavaScript或jQuery检查单选按钮选择是否与数组中的项目匹配
- jqueryui的轻量级替代品,可在angular项目中选择
- 更新:仅根据单选按钮和所选选项选择特定项目
- 如何在页面加载后禁用下拉列表框项目的选择
- 从Document调用onchange函数.已准备好从更新中预先选择的项目
- 选择了多个用javascript单击的项目
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- 取消选择滚动启动时的所有列表视图项目
- 使用.slice分页选择了太多项目
- 在此项目中使用jQuery或JavaScript中的选择器
- 如何检测项目是否在谷歌地图API自动完成列表中选择
- 使用vb限制asp.net中列表框中的项目选择
- SproutCore以编程方式在菜单栏中启动项目选择
- 在项目选择时,JSP中的动态文本字段与来自MYSQL数据库的数据
- 自动完成-自定义renderItem/Menu和项目选择问题
- Jquery iframe项目选择器不工作
- 我应该如何创建一个项目列表,过滤下拉项目选择在引导
- 使用KnockoutJS的项目选择MVC视图
- 想要根据项目选择和项目大小选择创建行和列,想要动态创建如下HTML表
- 无限滚动:项目选择器中的js代码