2013-06-08 3 views
1

Я использую jquery 1.3.2. У меня есть две одинаковые кнопки отправки с одинаковыми идентификаторами на одной странице. Кнопки имеют разные идентификаторы формы.2 одинаковые кнопки отправки - введите правильный идентификатор формы после отправки

Обе кнопки имеют одинаковый идентификатор

<input type="submit" id="edit-submit-43" class="form-submit"> 

Обе формы имеют разные идентификаторы

<form action="/productxy" accept-charset="UTF-8" method="post" id="uc-product-kit-add-to-cart-form-43-1" class="ajax-cart-submit-form"></form> 

Как получить идентификатор формы кнопки, которая была нажата вместо кнопки, которая является первым в HTML?

+0

Повторяющиеся идентификаторы недействительны, если вы не используете HTML5. Вы должны избегать этого. – OptimusCrime

+0

@OptimusCrime - Идентификаторы дубликатов недействительны в HTML5. – nnnnnn

+0

@nnnnnn - Похоже, вы правы. Я только что услышал это где-то и никогда не потрудился дважды проверить его. – OptimusCrime

ответ

2

Вы не показывать JS для, но если вы являетесь обязательными для общих обработчик щелчка на кнопках или общий обработчик отправки на формы, которые вы использовали бы this в сочетании с методами обхода DOM:

$(".form-submit").click(function() { 
    // assuming the button is actually inside its associated form: 
    var parentFormID = $(this).closest("form").attr("id"); 
}); 

или:

$("form").submit(function() { 
    var myId = this.id; 
}); 

В обработчике события this будет относиться к элементу, что событие применяется к.

И обратите внимание, что недействительно иметь повторяющиеся идентификаторы.

+0

var parentFormID = $ (this) .closest (« form »). attr (« id »), это то, что я искал благодаря вам. – user1031743

1

ID на странице HTML должен быть уникальным.

Изменить это

<input type="submit" class="form-submit"> 

Вы можете удалить id кнопки полностью, как это не требуется

$('.form-submit').on('click', function() { 

    var $form = $(this).closest('form'); 

    // this should give you the corresponding form 
    // in which the button is in 

    var formId = $form.attr('id'); 
}); 
+0

Я понимаю, но есть ли в jquery решение этой проблемы? – user1031743

+0

Что вы подразумеваете под решением?, Вы всегда можете использовать 'class' вместо –

+0

Я пытаюсь использовать ваш код, но я получаю ошибку - у объекта нет метода 'on' – user1031743

Смежные вопросы