2017-04-05 34 views
0

我有一個具有兩個輸入(稍後更多輸入)的窗體。一個輸入是文本輸入,第二個是複選框。我想用$ .ajax發送這兩個輸入。如何發佈具有多個值的jquery ajax數據對象

我用一個輸入創建了一個對象formData。如果複選框處於活動狀態,我想追加到對象中的第二個。

不幸的是,由於格式錯誤,我無法傳遞對象。

我的代碼:

<form id="myForm"> 
<input type="text" name="search_text" id="search_text" placeholder="Search by a name"> 
<input type="checkbox" name="exact" value="Exact">Exact 
</form> 
<br> 
<div id="result"></div> 

<script type="text/javascript"> 
    $(document).ready(function(){ 

     $('#myForm').on('change', ':checkbox', function(){ 
      if($(this).is(':checked')) { 
       console.log($(this).val() + ' is now checked'); 
      } 
      else { 
       console.log($(this).val() + ' is now unchecked'); 
      } 
     }); 

     var formData = {'qry':search}; 
     $('#search_text').on('keyup', function(e){ 
      e.preventDefault(); 
      var search = $(this).val(); 
      $('#result').html(''); 
      $.ajax({ 
       url:"fetch.php", 
       method: "POST", 
       data: formData, 
       dataType: "text", 
       success:function(data) { 
        $('#result').html(data); 
       } 
      }); 
     }); 
    }); 
</script> 

回答

0

如果需要,您需要連載的形式數據,然後添加更多的數據:

var data = $('#myForm').serializeArray(); 
data.push({name: 'sample', value: "something_more"}); 

你的AJAX應該再是這樣的:

var data = $('#myForm').serializeArray(); 
data.push({name: 'sample', value: "something_more"}); 
     $.ajax({ 
      url:"fetch.php", 
      method: "POST", 
      data: data, 
      dataType: "text", 
      processData: false, 
      success:function(data) { 
       $('#result').html(data); 
      } 
     }); 
+0

這是一個很酷的解決方案。但我有一個Livesearch函數(鍵控),我不能實現它 –