许多具有相同名称的按钮

时间:2014-03-19 14:38:10

标签: javascript html vbscript

我有一堆具有相同名称但价值不同的按钮。这些按钮需要从一个值更改为另一个值,并在单击时返回。我知道我可以使用html和javascript来完成它,但我想用尽可能少的代码来做。我有13个按钮,我不想调用13个不同的onclick功能。我希望使用带有元素ID的case语句,但我不知道我从哪里开始。我会发布我的代码,但它很简单,我怀疑它是否需要。

以下是我的按钮代码的示例:

<tr>
    <td>
        <input type="button" value="test1" name="Online">
    </td>
    <td>
        <input type="button" value="test2" name="Online">
    </td>
  </tr>

2 个答案:

答案 0 :(得分:1)

由于您的按钮具有相同的名称,因此您无法使用默认的OnClick事件(在本例中为Online_OnClick)。如果您尝试,只有 last 按钮才会触发该事件。但您可以使用onclick属性指定要调用的函数。例如:

<input type="button" value="test1" name="Online" onclick="DoButtonClick('test1')">
<input type="button" value="test2" name="Online" onclick="DoButtonClick('test2')">

<script language="vbscript">
    Sub DoButtonClick(strButtonValue)

        ' Do what you wish

    End Sub
</script>

答案 1 :(得分:1)

如果您不需要在服务器端执行任何操作,则可以使用javascript执行此操作。我已经发布了一个如何执行此操作的示例here

首先,只需添加一个onclick事件,将当前元素传递给函数,例如clicked()

<tr>
    <td>
        <input onclick="clicked(this)" type="button" value="test1" name="Online">
    </td>
    <td>
        <input onclick="clicked(this)" type="button" value="test2" name="Online">
    </td>
</tr>

以下是javascript clicked()函数的外观

function clicked(elem) {
    if (elem.name === 'Online') {
        elem.name = 'Offline';
        // do other stuff
    } else {
        elem.name = 'Online';
        // do other stuff
    }
}