0

我有一个小型 html 计算器,您可以在其中输入两个数字,并使用两个单独的按钮来添加或减去它们,如下所示:

<form method="post" action="<%= actionURL %>" >
    <input type="text" name="x" value="${x}"/>
    <input type="text" name="y" value="${y}"/>
    <input type="submit" name="add" value="add"/>
    <input type="submit" name="subtract" value="subtract"/>
</form>

我想用一个select元素替换这两个按钮,当用户选择其中一个选项时,它会提交表单。到目前为止,我有以下内容:

<form method="post" action="<%= actionURL %>" >
    <input type="text" name="x" value="${x}"/>
    <input type="text" name="y" value="${y}"/>
    <select name=operation onChange="this.form.submit()">
        <option value="add">Add</option>
        <option value="subtract">Subtract</option>
    </select>
</form>

现在我得到一个带有“添加”和“减去”选项的下拉框。每当我选择“减去”时,表单就会被提交,我可以operation在服务器上检查请求的参数。但是单击下拉框,然后单击“添加”不会触发onChange事件,因为“添加”已被选中,因此不会提交表单。当用户选择已选择的选项时,有什么方法可以提交表单?

4

2 回答 2

3

发生这种情况是因为已经选择了“添加”并且没有发生任何更改。您应该在选择中添加另一个元素:

<form method="post" action="<%= actionURL %>" >
    <input type="text" name="x" value="${x}"/>
    <input type="text" name="y" value="${y}"/>
    <select name=operation onChange="this.form.submit()">
        <option value="" disabled="disabled" selected="selected">Select operation</option>
        <option value="add">Add</option>
        <option value="subtract">Subtract</option>
    </select>
</form>
于 2013-06-14T12:35:58.540 回答
1

您可以使用提交按钮提交表单,您可以根据在下拉列表中选择的值设置操作参数并执行操作。

于 2013-06-14T12:37:15.563 回答