2014-09-17 4 views
2

Используя jQuery form plugin, я просто хочу представить видимые поля (а не скрытые) формы.jQuery form plugin, как отправлять только видимые поля

HTML:

<div class="result"></div> 
    <form id="myForm" action="comment.php" method="post"> 
     Name: <input type="text" name="name" /> 
     Comment: <textarea name="comment"></textarea> 

<div style="display:none;"> 
     <input type="text" value="" name="name_1" /> 
</div> 

     <input type="submit" value="Submit Comment" /> 

    </form> 

Я не могу найти способ представить только видимые поля, используя любой из указанных ниже способов:

ajaxForm:

// wait for the DOM to be loaded 
     $(document).ready(function() { 
      // bind 'myForm' and provide a simple callback function 
      $('#myForm').ajaxForm(function() { 
       alert("Thank you for your comment!"); 
      }); 
     }); 

ajaxSubmit:

$('#myForm').ajaxSubmit({ 
     target: '.result', 
     success: function(response) { 
     alert("Thank you for your comment!"); 


     } 
    }); 

Существует еще один способ: formSerialize, но не нашел способа использовать его с указанными выше способами (можно использовать только с $.ajax). Как отправить только видимые поля, используя любой из двух методов?

+0

Попробуйте что-то вроде 'вара QueryString = $ ('# Myform входа: видимое, текстовое поле: видимый') fieldSerialize();' – Regent

+0

@Regent, где использовать эту переменную 'queryString'.? –

+0

В опции [$ .ajax()] (http://api.jquery.com/jquery.ajax/) 'data'. Я не видел способ фильтровать поля с помощью jQuery Form Plugin, поэтому я предлагаю использовать простой '$ .ajax()', который будет вызываться внутри '$ ('# myForm'). Sumbit (function() { }); ' – Regent

ответ

1
$("#myForm").on("submit", function() { 
     var visibleData = $('#myForm input:visible,textarea:visible,select:visible').fieldSerialize(); 
     $.post(this.action, visibleData, function(result) { 
      alert('Thank you for your comment!');  
     }); 
     // this is needed to prevent a non-ajax submit 
     return false; 
}); 
+0

От OP: как подавать только видимые поля, используя ** любой из двух методов ** –

+0

$ ('# myForm'). AjaxSubmit ({ target: '.result', данные: $ ('#myForm input: visible, textarea: visible, select: visible'). serialize(), success: function (response) { alert («Спасибо за ваш комментарий!»); } }); –

+0

Где он упоминается в его плагине? –

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

  • Нет связанных вопросов^_^