Chrome扩展程序弹出窗体中的多个提交按钮

时间:2014-10-18 18:02:45

标签: javascript google-chrome-extension

我正在开发一个保存到存储空间的扩展程序,如果表单有多个具有相同ID的按钮(名称不是很多,id是chrome扩展程序的标识符),我的检查不会工作

<tr>
  <td colspan="2">
   <input type="Submit" value="Add" id="action" name="action" style="width: 100%" /></td>
 </tr>    
<tr>
  <td colspan="2">
  <input type="Submit" value="Edit" id="action" name="action" style="width: 100%" /></td>
</tr>

不会触发我的js(下面),但这将

<tr>
  <td colspan="2">
   <input type="Submit" value="Add" id="action" name="action" style="width: 100%" /></td>
 </tr>

JS

function manageItem() {
    if (action.value=='Add') {
        ...
    }
}

我的目的是像

一样使用它
function manageItem() {
    if (action.value=='Add') {
        ...
    } else if (action.value='Edit') {
        ...
    }
}

如果我只有一个带有id动作的按钮,那么这是有效的。如果我有一个以上的按钮,这根本不起作用。

例如,当浏览器提交到服务器端脚本时,只有单击的提交按钮才会发送其值,因此这种情况适用于此(仅作为示例)。

我已尝试以自己的形式测试每一行,但当两个元素具有相同的ID时,我仍会遇到冲突。我该怎么办?

编辑:我认为我已经在我的问题中包含了我知道id不能重复,但我没有明确说出来。我知道在格式良好的HTML中,ID不能重复,但我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

您应该使用class="action"代替id="action"id s不能重复。

此外,输入错误:将if (action.value='Edit') {替换为if (action.value=='Edit') {

<小时/> 在您当前的HTML中,您实际上并不需要 ID或类(但仍然需要名称) - 您可以删除这些属性,也不

function manageItem() {
    if (action.value=='Add') {
        ...
    } else if (action.value='Edit') {
        ...
    }
}

要区分您的按钮,您可以使用以下内容:

document.getElementsByName("action")[0].onclick=function(){
    //first button clicked
}

document.getElementsByName("action")[1].onclick=function(){
    //second button clicked
}