使用所选选项重新提交表单

时间:2014-02-08 19:53:59

标签: javascript html forms

我想知道在点击选定的值selected="selected"时是否可以提交表单(输入的下拉列表)。我似乎无法让它发挥作用。

我的代码:

<form method="post" name='myform' id="box" action="javascript:alert('submitted')" onsubmit="if(this.f.value == -1){return false;}">
        <fieldset class="box_fieldset">
            <select name="f" id="f3" onchange="if(this.options[this.selectedIndex].value != -1){ document.forms['myform'].submit() }">
                <option value="-1">-- select --</option>
                <option value="1" >one</option>
                <option value="2" selected="selected" >two</option>
                <option value="3" >three</option>
            </select>
        </fieldset>
</form>

使用相应的jsFiddle

如您所见,由于已经选择了option 2,因此无法“重新提交”{{1}} (警报不会被触发)。

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:0)

好吧,使用另一个事件触发器。

window.onload应该是适当的。

jsFiddle link

答案 1 :(得分:0)

当您使用onchange事件时,您无法处理默认值,例如您选择的值(两个);

<option value="-1" selected>-- select --</option>
            <option value="1" >one</option>
            <option value="2" >two</option>
            <option value="3" >three</option>

答案 2 :(得分:0)

<html>
<head>
</head>
<body>
<select id="slct">
    <option value="1" onclick="clicked(this)">one</option>
    <option value="2" onclick="clicked(this)">two</option>
    <option value="3" onclick="clicked(this)">three</option>
</select>
<script>
    function clicked(e){
        var xml = new XMLHttpRequest();
        xml.open("GET",""+this.value,false);
        xml.send();
    }
</script>
</body>

使用这样的技巧来处理你的请求