尝试使用javascript从自提交表单中获取值

时间:2017-01-18 23:35:00

标签: javascript html

我有一个数据库,我可以从中生成供用户选择的选项。根据此选择,我将这些值提交到同一页面并使用javascript进行选择。

在同一表格中,我有一个单选按钮和一个多选菜单。

html是这样生成的:

单选按钮和多个选项选择代码:

htmlstr+="<select multiple>";
for (i=0; i<g.length;i++) {
        htmlstr+="<option name='ges[]' value='" + g[i] + "'>" + g[i] + "</option>";
}
htmlstr+="</select><br>";
for (i=0; i<st.length;i++) {
    htmlstr+="<input type='radio' name='sts' value='" + st[i] + "'>" + st[i] + "<br>";
}

这些都放在一个表单中,然后有一个提交按钮。 单击提交按钮后,我想知道选择的值。我理解多个选择将是一个数组,但我如何获取值数组,我甚至无法获得所选单选按钮的值。我已经尝试使用附加到名称的.value属性获取值,但这不起作用。

1 个答案:

答案 0 :(得分:1)

没有一种真正简单的方法。您必须检查每个选项。

记录了一个HTMLSelectElement.selectedOptions接口。但它使用不多,我不确定浏览器的支持。此外,它仅适用于选择控件而不适用于无线电控件。您可以在此处查看:https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement

但是对于更可靠的方法,请尝试这个......

对于select控件,遍历selectControl.options数组,并检查每个项目是否为selected属性。如果selected属性为true,则将该值添加到您自己的数组中。

伪代码:

  for (var i in select.options) {
    if (select.options[i] && select.options[i].selected) {
      selectedOptions.push(select.options[i].value);
    }
  }

对于单选按钮,遍历dom(getElementsByName)中的对象数组,并检查checked属性。确实如此,将该值添加到您的数组中。

伪代码:

  for (var i in radios) {
    if (radios[i] && radios[i].checked) {
      selectedOptions.push(radios[i].value);
    }
  }

以下是使用您的代码的完整工作示例:

jsFiddle:https://jsfiddle.net/mspinks/u890j86j/3/