2013-08-29 6 views
0

у меня есть проблемы с поиском родителя формы в этом коде:Как найти родителя?

<li class="comment<?php echo $comment[id]?>"> 
    <div class="comment-content"> 
     <div class="comment-top"> 
      <div class="comment-nme"> 
        <?php echo $comment[name]?> 
      </div> 
       <div class="comment-dt"> 
        <?php echo $comment[dt]?> 
       </div> 
     </div> 
     <div class="comment"> 
      <?php echo $comment[comment]?> 
     </div> 
     <a class="reply" href="#comment<?php echo $comment[id]?>">Ответить</a> 
    </div> 
    <div class="answer-form"> 
     <form method="post" name="answer-form" class="ans"> 
      <textarea class="comment-textarea" name="comment"></textarea> 
      <div class="a-comment-inputs"> 
       <input type="hidden" name="parent_id" value="<?php echo $comment[id]?>"> 
       <input type="hidden" name="status" value="new"> 
       <div class="a-comment-name"> 
        Имя</br> 
        <input type="name" name="name" class="a-comment-name"> 
       </div> 
       <div class="a-comment-email" > 
        Eмейл</br> 
        <input type="email" class="a-comment-email" name="email"> 
       </div> 
      </div> 
      <div class="comment-apply"> 
       <button value="submit" onclick="return sendDataChild();" class="answer-but">Добавить</button> 
      </div> 
     </form> 
    </div> 

    <?php if($comment[childs]){ ?> 

     <ul class="commentsRoot<?php echo $comment[id]?>"> 
      <?php echo commentsString($comment[childs]) ?> 
     </ul> 

    <?php } ?> 

</li> 

я использовать эту функцию JQuery:

function sendDataChild() { 
    var form = $('FORM[name=answer-form]'); 
    var data = form.serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "req.php", 
     dataType: "json", 
     data: data, 
     cache: false, 
     success: function (data) { 
      form[0].reset(); 
     }, 
     error: function (xhr, str) { 
      alert('Возникла ошибка: ' + xhr.responseCode); 
     } 
     //$("#messageModalDialog").text(resultStat).show(); 
    }); 
    return false; 
}; 

но выбрать любую форму, что найти на кнопку мыши. Может кто-нибудь посоветовать, как его решить?

+0

я извиняюсь не понимать U – myrko

+1

все ваши формы имеют имя = ответ-форму? – Rishabh

+0

Да, я использую рекурсивную функцию, и она генерирует несколько форм с тем же именем. – myrko

ответ

0

один из возможных решений

<button value="submit" onclick="return sendDataChild(this);" class="answer-but">Добавить</button> 

затем

//pass the clicked button reference then find the parent form of the button 
function sendDataChild(btn) { 
    var form = $(btn).closest('FORM[name=answer-form]'); 
    var data = form.serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "req.php", 
     dataType: "json", 
     data: data, 
     cache: false, 
     success: function (data) { 
      form[0].reset(); 
     }, 
     error: function (xhr, str) { 
      alert('Возникла ошибка: ' + xhr.responseCode); 
     } 
     //$("#messageModalDialog").text(resultStat).show(); 
    }); 
    return false; 
}; 
+0

спасибо !!!! он работает! – myrko

+1

@downvoter любая возможная причина ... это одно из возможных решений, не меняя большую часть того, что было OP .... также будет поощрять читать [проголосовать] (http://stackoverflow.com/help/privileges/down-down), и особенно, когда нужно проголосовать «Использовать ваши downvotes всякий раз, когда вы сталкиваетесь с вопиюще неряшливым, не затраченным на усилия сообщением или ответ, который явно и, возможно, опасно неверен». –

0

Bind представить события на форме и передать объект к объекту формы для вашего метода

$(document).ready(function(){ 
    $("form[name='answer-form']").on('submit', function(){ 

     sendDataChild($(this)); 

    }); 
}); 

function sendDataChild(form) { 
    var data = form.serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "req.php", 
     dataType: "json", 
     data: data, 
     cache: false, 
     success: function (data) { 
      form.reset(); 
     }, 
     error: function (xhr, str) { 
      alert('Возникла ошибка: ' + xhr.responseCode); 
     } 
     //$("#messageModalDialog").text(resultStat).show(); 
    }); 
    return false; 
}; 
+0

эта функция dosnt work ( – myrko

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