我正在开发一个保存到存储空间的扩展程序,如果表单有多个具有相同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不能重复,但我不知道如何实现这一点。
答案 0 :(得分:1)
您应该使用class="action"
代替id="action"
,id
s不能重复。
此外,输入错误:将if (action.value='Edit') {
替换为if (action.value=='Edit') {
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
}