使用onchange = this.form.submit()传递提交表单的标记的id

时间:2013-11-28 01:01:31

标签: javascript jquery html

有没有办法知道提交哪个选择标签?

<form method="POST" action="submit.php">
    <select id="id1" name="sel1" onchange="this.form.submit()">
        <option value="1">First</option>
        <option value="2" selected="selected">Second</option>
    </select>

    <select id="id2" name="sel2" onchange="this.form.submit()">
        <option value="1">First</option>
        <option value="2" selected="selected">Second</option>
    </select>
</form>

非jQuery解决方案更可取,但不是强制性的......

P.S。问题是selected="select"属性是动态生成的(我不知道哪个选项会被选为默认选项 - 因此我无法将默认值与提交进行比较)

1 个答案:

答案 0 :(得分:1)

首先想到的是一个隐藏的字段,其中包含您设置的值。这样的事情应该做。

<form method="POST" action="submit.php">
    <input type="hidden" name="submitselect" value="" id="submitselect">
    <select id="id1" name="sel1" onchange="document.getElementById('submitselect').value='sel1';this.form.submit()">
        <option value="1">First</option>
        <option value="2" selected="selected">Second</option>
    </select>

    <select id="id2" name="sel2" onchange="document.getElementById('submitselect').value='sel2';this.form.submit()">
        <option value="1">First</option>
        <option value="2" selected="selected">Second</option>
    </select>
</form>

或者,您可以选择默认选项,例如

<option value="" selected>-</option>

绝不会选择。这样,此选项将在select中未设置,但不会导致提交。