2013-03-19 238 views
2

我在一個頁面上有多個表單都是這樣的:ID值改變但選項可以類似。Jquery單選按鈕提交表單

<form class="test"><td>4000</td> 
<td align='center'><input type='radio' name='radio' value='car' checked></td> 
<td align='center'><input type='radio' name='radio' value='boat' ></td> 
<td align='center'><input type='radio' name='radio' value='Plane' ></td> 
<input type='hidden' name='id' value='4000'/> 
<input type='hidden' name='location' value='local'/> 
<div class="form" style="display: none;"> 
</div></form> 

使用JQuery我試圖提交這個時,任何3個單選按鈕被選中。

<script> 
$("input[name='radio']").click(function() { 
    var CurrectForm=$(this).parents('.test:first'); 
    $.post(
     'do.php', 
     CurrectForm.serialize(), 
     function(response) { 
      CurrectForm.find('#form').html(response); 
       show(response); 
     } 
    ); 
}); 
</script> 

我用類似上面複選框和下拉列表,已經工作得很好。但是這似乎並沒有將這些值提交給do.php頁面。提交的值以div格式顯示。做一個var_dump($_POST);會產生一個空的數組。

有人能指出我正確的方向嗎? 謝謝

改變形式ti這似乎工作?

<td><form class="test"> 
<input type='radio' name='radio' value='car' checked> 
<input type='radio' name='radio' value='boat' > 
<input type='radio' name='radio' value='Plane' > 
<input type='hidden' name='id' value='4000'/> 
<input type='hidden' name='location' value='local'/> 
<div class="form" style="display: none;"> 
</div></form></td> 

爲什麼改變原因它工作?

Jfiddle與工作示例:) http://jsfiddle.net/QvpH5/

+0

你有沒有試過'console.dir(CurrectForm)'來看看你是正確的選擇呢? – JoeCortopassi 2013-03-19 18:33:50

回答

0

我的猜測是,有你的頁面上有多個形式與類test。發生什麼事情是,當你使用parents(),你不知道它首先發現所有的祖先,,然後搜索.test:first。無論點擊哪個表單,這將返回第一個表單的值。

看這個的jsfiddle看到修復(其他城市。家長到.parent):http://jsfiddle.net/SDzzr/

+1

謝謝,但看起來問題部分是由於多個的表單佈局造成的。 有什麼建議嗎? – MacMan 2013-03-19 19:58:04

+0

你能看到我提供的jsFiddle中的代碼嗎?它似乎解決了問題 – JoeCortopassi 2013-03-20 14:36:09

+0

感謝它的工作..直到你添加一個表到佈局..數組是空的。任何方式通過傳遞? – MacMan 2013-03-20 18:20:55