使用javascript选择选项的多重作用表单

时间:2012-11-07 10:57:18

标签: javascript select

<form id="check" action="." method="POST">
    <input id="act" type="hidden" name="action"/>
        <select id="blk">
            <option value="blk">Bulk Actions</option>
            <option value="tes">Active</option>
            <option>Inactive</option>
            <option>Delete</option>
        </select>
     <input type="submit" value="Submit" onclick="document.getElementById('act').value = 'document.getElementById('blk').selectedIndex.value'"/>
</form>

我希望通过select标签获取值,并且值操作将在输入时更改,名称操作为值

2 个答案:

答案 0 :(得分:1)

你混合了两个概念。

  • select元素具有反映当前选择的value属性
document.getElementById('blk').value
  • select元素包含一个带值的选项列表和一个反映当前选择位置的selectedIndex属性。像这样使用它:
var sel = document.getElementById('blk');
if (sel.selectedIndex >= 0) // could be -1 as well
    return sel.options[sel.selectedIndex].value

然而,你实际上想要的是

<form id="check" action="." method="POST">
    <select name="action">
         <option value="blk">Bulk Actions</option>
         <option value="tes">Active</option>
         <option>Inactive</option>
         <option>Delete</option>
    </select>
    <input type="submit" value="Submit" />
</form>

您忘记了name控件的select,因此不会发布任何值。有了它,你既不需要隐藏的输入也不需要按钮上的点击监听器(它也应该是表格上的onsubmit监听器)。

答案 1 :(得分:0)

try this
<form id="check" action="." method="POST">
    <input id="act" type="hidden" name="action"/>
        <select id="blk" onchange="javascript:CallMe(this.value)">
            <option value="blk">Bulk Actions</option>
            <option value="tes">Active</option>
            <option>Inactive</option>
            <option>Delete</option>
        </select>
<input type="submit" value="Submit" onclick="document.getElementById('act').value = 'document.getElementById('blk').selectedIndex.value'"/>
</form>

<script>
function CallMe(String str)
{
alert(str+" : is the value selected , call the according action now");
}
</script>