2013-09-03 3 views
-1

динамически я генерирую формуляр в определенный div-контейнер, и я хотел бы захватить отправку-действие для отправки с помощью ajax.jQuery.find() форма в элемент не работает

Сгенерировать HTML:

<div class="mhuntform"> 
<form action="/wp-admin/admin-ajax.php" method="POST"> 
<h2>Title</h2> 
<p>A text</p> 
<div id="form" style="padding: 5px 0px;"> 
<p> 
<label for="email" style="display: inline-block; margin-right: 10px;">E-Mail</label> 
<input type="email" name="email" id="email" placeholder="E-Mail" style="width: 60%;"> 
</p> 
<p> 
<button name="mhskl_send" id="mhskl_send">Anmelden</button> 
</p> 
</div> 
</form> 
</div> 

формульный определяются администратором в WordPress-страницу. В Javascript (jQuery) я знаю только имя класса div-container (здесь .mhuntform). Таким образом, в JavaScript, я пытаюсь поймать событие:

// mhuntskl.options.container = '.mhuntform' 
$(mhuntskl.options.container).find('form').submit(function(ev){ 
    ev.preventDefault(); 
    var email = $(mhuntskl.options.container).find('input[type="email"]').val(); 
    var res = $.ajax(mhuntskl.options.ajaxurl,{async:false,data:{action:'subscribe',email:email},dataType:'json',type:'POST'}).responseText; 
    res = $.parseJSON(res); 
    if (res.success) { 
     $(mhuntskl.options.container).hide(); 
    } 
    return false; 
} 

Но, к сожалению, представить-событие не будет ловить, и если я печатаю containter с найти в консоль console.log($(mhuntskl.options.container).find('form')) он получил только пустой объект.

Что я здесь делаю неправильно?

+0

Это возвращение 1 - * console.log ($ (mhuntskl.options.container) .length) * – Krasimir

+0

Главный вопрос здесь: ** когда ** вы используете свой Javascript? –

+0

@Adrian я использую его в '$ (document) .ready (function() {});' statement. – WPler

ответ

0

Если console.log ($ (mhuntskl.options.container) .length); - 1 и console.log ($ (mhuntskl.options.container) .find ('form'). Length); равно 0, тогда есть только одна возможная причина. Ваша форма все еще не находится внутри .mhuntform div при выполнении кода. Эта форма создается другим javascript. Если нет, то код js завернут в $ (документ) .ready.

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