如何知道单击了哪个按钮

时间:2011-05-05 10:44:23

标签: javascript html jsp button

在我的页面中,我有许多编辑按钮,每个名称以“编辑”开头,然后是一些ID。我想知道我的任何编辑按钮是否被点击。 详细说明,我有表格。在表单中,我有许多编辑按钮,名称以“编辑”开头,删除名称以“删除”开头的按钮和1个添加按钮。所有都是提交按钮。 form onsubmit如果按钮是编辑确认(“一些文本”),则调用我想要的JavaScript函数,否则提交表单。  我怎么能用JavaScript做到这一点? 我认为给所有这些按钮都是相同的id,然后是getElementById,但是我有什么改变?

5 个答案:

答案 0 :(得分:5)

使用jQuery很简单:

$(':button').click(function() {
  // reference clicked button via: $(this)
  var buttonElementId = $(this).attr('id');
});

尝试一下: http://jsfiddle.net/7YEay/

根据评论中的反馈进行更新

这是未经测试的/伪代码:

$(':submit').click(function(event) {
  var buttonName = $(this).attr('name');

  if (buttonName.indexOf('edit') >= 0) {
    //confirm("some text") logic...
  }

  event.preventDefault();
});

此文档也可能有用:http://api.jquery.com/submit/

答案 1 :(得分:2)

function MyOnSubmit(e){
   e = e || window.event;
   // srcElement for IE, target for w3c
   var target = e.target || e.srcElement;
   if (target.id.indexOf("edit") > -1){
     // an edit button fired the submit event
   }
}

虽然我建议你进一步研究以找到一种更好的方法来处理编辑和删除按钮(比如用href = editpage.jsp?id = 23制作链接)

答案 2 :(得分:1)

我很确定你自己刚刚回答了这个问题......

每个都以“编辑”开头,并以唯一ID结束? 所以... $(按钮).attr(“id”)会给你这个。将它存储在变量中?不确定你要做什么..

答案 3 :(得分:1)

在所有按钮上绑定点击事件:

for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    if (button.addEventListener) {
        button.addEventListener('click', handler, false);
    }
    else {
        button.attachEvent('onclick', handler);
    }
}

在您的事件处理程序中,获取事件对象,然后获取目标:

function handler(e) {
    e = e || window.event;
    // srcElement for IE, target for w3c
    var target = e.target || e.srcElement;
    var id = target.name.substring(4);
    /* your code rely on id */
}

答案 4 :(得分:1)

我想你可能没有正确地表达你的问题。如果您使用的是jquery,则查找按钮就像$('#id')一样简单,如果您想在该按钮上存储任何信息,您可以添加属性或使用jquery.data函数。

$('#id').attr("pressed", "true");

或者

$('#id').data('pressed', 'true');