Как узнать, какая кнопка нажата - PullRequest
4 голосов
/ 05 мая 2011

На моей странице есть много кнопок редактирования, каждое имя начинается с «редактировать», а затем - некоторый идентификатор. Я хочу знать, нажата какая-либо из моих кнопок редактирования или нет. В деталях у меня есть форма. В форме у меня есть много кнопок редактирования, название которых начинается с «редактировать», кнопки удаления, название которых начинается с «удалить» и 1 кнопка добавления. Все кнопки отправки. Форма при отправке Я вызываю функцию JavaScript, в которой я хочу, чтобы кнопка редактировалась, подтверждала («некоторый текст»), иначе отправляла форму. Как я могу сделать это в JavaScript? Я думаю, дать всем этим кнопкам один и тот же идентификатор, а затем получить getElementById, но тогда как мне изменить?

Ответы [ 5 ]

5 голосов
/ 05 мая 2011

Это просто с помощью 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/

2 голосов
/ 05 мая 2011
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)

1 голос
/ 05 мая 2011

событие связывания клика на всех кнопках:

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);
    }
}

в обработчике событий, получите объект Event , а затем получите цель:

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 */
}
1 голос
/ 05 мая 2011

Я думаю, вы не правильно сформулировали свой вопрос.Если вы используете jquery, найти кнопку так же просто, как $('#id'), и если вы хотите сохранить какую-либо информацию об этой кнопке, вы можете добавить атрибут или использовать функцию jquery.data.

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

Или

$('#id').data('pressed', 'true');
1 голос
/ 05 мая 2011

Я уверен, что вы только что ответили на это сами ...

Каждый начинается с "edit" и заканчивается уникальным идентификатором?Итак ... $ (кнопка) .attr ("id") даст вам это.Сохранить это в переменной?Не уверен, что ты пытаешься сделать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...