2016-10-18 4 views
0

Мы используем форму marketo на одной из наших установок Drupal, и я пытаюсь добавить событие щелчка при нажатии кнопки. Но когда я рассматриваю источник, я не вижу элемент from. Однако я вижу это на инспекторе DOM.Как получить элемент формы в DOM, а не в исходном коде?

Это то, что я вижу в источнике изображения.

<form class="marketo-form-wrapper" 
    data-formid="####" 
    data-campaign="######" 
    data-file="####" 
id="####"> 

скриншот инспектировать элемент прикреплен.

Независимо от того, что я делаю, я не могу вызвать функцию щелчка при нажатии кнопки отправки. я мог сделать ДО этого момента

$('.marketo-form-wrapper').click(function (e) {   
console.log('clicked');}); 

Я не хочу эту функцию, которая будет вызываться, когда пользователь нажимает на форму обертку. Я хочу, чтобы он был вызван, когда нажата фактическая кнопка.

Если я это сделаю, ничего не появится.

$('.marketo-form-wrapper .mktoButtonRow:button').click(function (e) {
console.log('clicked');});

+0

Событие делегата для обработки динамического элемента: '$ ('. Marketo-form-wrapper'). On ('click', '.mktoButtonRow: button', function (e) {...});' –

ответ

1

Используйте селектор делегата.

$('.marketo-form-wrapper').on("click",".mktoButton",function(){ 
    console.log("clicked"); 
}); 

Это будет применять обработчик щелчка к любому элементу с классом .mktoButton, внутри класса .marketo форм-обертки, добавлено после загрузки DOM. Это относится к вашему вопросу.

+0

Oh мой Бог. Я не могу тебя отблагодарить. Это прекрасно работает. – Neela

+0

Я не думаю, что так все работает. Обработчик событий делегата применяет прослушиватель событий в '.marketo-form-wrapper', а затем по существу фильтрует это вниз, если целью является' .mktoButton', на самом деле не применяя прослушиватель к '.mktoButton' – Pat

+0

Возможно, я не могу это объяснить правильно, и вы можете быть верны. Но это действительно то, что нужно ОП. – TheValyreanGroup