2013-05-13 55 views
0

我已經找到了一些解決方案,我這個鏈接下提供的最後解決方案下,面臨着一個問題:Create a HTML table where each TR is a FORM輸入在TR> TD>輸入不與jQuery的序列化處理

不管怎樣,下面是我的一些代碼片段: HTML:

<tr class="a1td"> 
    <td class="style1">12</td> 
    <td class="style1">i_pinz/td> 
    <td class="style1">2013-05-12</td> 
    <td class="style1">2013-05-12</td> 
    <td class="style1"><input type="text" name="name1" value="val1" id="name1" size="50" maxlength="50" placeholder="exampletext" /></td> 
    <td class="style1"><input type="text" name="name2" value="val2" id="name2" size="20" maxlength="32" placeholder="example2" class="cleanInput" /></td> 
    <td class="style1"><input type="text" name="name3" value="" id="name3" size="20" maxlength="32" placeholder="example" /></td> 
    <td class="style1"><input type="text" name="name4" value="val4" id="link" size="50" maxlength="255" placeholder="example" /></td> 
    <td class="style1"><input type="text" name="name4" value="0" size="4" /></td> 
    ... some links and images 
    <td><button name="apply" type="submit" class="SubmitRow" ><img src="accept.png" alt=""/></button> 
<input type="hidden" name="ID" value="xx" /> 
    </td> 
<tr> 

中的JavaScript:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".SubmitRow").click(function() 
    { 
    console.log('inside submit function'); 
    var form = '<form><table><tr>' + $(this).closest('tr').html() + '</tr></table></form>'; 
    var serialized = $(form).serialize(); 
    console.log(serialized); 
    $.post("quickEdit", serialized); 
    }); 
});   
</script> 

所以,我現在的問題是:如果我更新的字段名稱3,按下按鈕,函數被稱爲假定和想要的,無論如何,如果我看看控制檯日誌字段name3不呈現更新的值。因此,服務器端的代碼無法工作。

我使用最新的jQuery 1.9.x,並且表中未包含<form></form>

歡迎任何建議。

+0

'VAR form'是不是在你的代碼中的jQuery選擇。 – Jai 2013-05-13 08:47:51

+0

謝謝你的提示,但是我應該改變什麼才能使它工作? – 2013-05-13 09:24:07

回答

0

試試這個 -

var serialized = $(form).find('form').serialize(); 

OR

var serialized = $(this).closest('tr').serialize(); 
+0

對不起,不起作用...現在序列化本身是空的。也許問題出在線路:'變種形式= '

' + $(本).closest( 'TR')HTML()+ '
';' – 2013-05-13 09:22:08

+0

你嘗試過這個'$(這一點。 ).closest('tr')。serialize();'? – 2013-05-13 09:24:36

+0

我都試過了,都返回一個空的結果。 – 2013-05-13 09:43:28