2011-01-10 67 views
3

我無法獲得表單將變量發佈到使用動態字段的另一個腳本?帖子表格不能與jQuery字段一起使用

編輯:腳本創建一個新的輸入字段行,但他們都沒有管理變量發佈到PHP腳本。

的jQuery:

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

      var newRowNum = 2; 


      $('#addnew').click(function(){ 
        // increment the counter 
        newRowNum += 1; 

        var addRow = $(this).parent().parent(); 


        var newRow = addRow.clone(); 


        $('input', addRow).val($(this).val()); 
        $('name', addRow).val('os' + newRowNum); 


        $('td:last-child', newRow).html('<a href="" class="remove">Remove<\/a>'); 


        $('input', newRow).each(function(i){ 
          var newID = 'os' + newRowNum + i; 
          $(this).attr('id',newID).attr('name',newID); 
        }); 



        addRow.before(newRow); 


        $('a.remove', newRow).click(function(){ 
          $(this).parent().parent().remove(); 
          return false;       
        }); 


        return false; 
      }); 
    }); 

HTML:

<tr> 
<td> 
<input name="os21" type="text" id="os21" value="" size="24" maxlength="60" /></td> 
<td> 
<input name="os22" type="text" id="os22" value="" size="24" maxlength="60" /></td> 
<td> 
<input name="os23" type="text" id="os23" value="" size="10" maxlength="60" /></td> 
<td><a id="addnew" href="">Add +</a></td> 
</tr> 
<tr><td colspan="3" align="left" style="text-align: right; padding-top: 10px;"> 
<input type="submit" value="Update"> 
</td></tr> 
+0

只有最初創建的字段(os21,os22和os23)到達服務器或根本沒有? – polarblau 2011-01-10 14:07:53

+0

我沒有得到它,你想要exacly ..你想通過ajax或??????發佈到php腳本 – 2011-01-10 14:12:34

回答

2
<script language="text/javascript"> 
    function postMyForm() 
    { 
     $.ajax({ 
      url: "url from your file to post to", 
      data: $('#myForm').serialize(), 
      type: 'post', 
      success: function(data) { 
       // do stuff when request is done 
      } 
     }); 
    } 

    function AddNewRule() { 
     // get last ID 
     // convert to a int to count with it 
     var LastID = parseInt($('#myTable tr:last td input').attr('id').replace(/os/gi, '')); 
     // add 1 to get next ID 
     LastID += 1; // OR LastID = LastID + 1; what you wanna use 

     // create new rule and set the next ID 
     var newRule = $('<tr><td><input name="os'+ LastID +'" type="text" id="os'+ LastID +'" value="" size="10" maxlength="60" /></td></tr>'); 

     // append/insert at the end of your table 
     $('#myTable').append(newRule); 
    } 
</script> 

<form id="myForm"> 
<table id="myTable"> 
    <tr> 
     <td> 
      <input name="os21" type="text" id="os21" value="" size="24" maxlength="60" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input name="os22" type="text" id="os22" value="" size="24" maxlength="60" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input name="os23" type="text" id="os23" value="" size="10" maxlength="60" /> 
     </td> 
    </tr> 
</table> 
    <a id="addnew" onclick="AddNewRule();" href="javascript:void(0);">Add +</a> 
<table> 
    <tr> 
     <td colspan="3" align="left" style="text-align: right; padding-top: 10px;"> 
      <input type="submit" onclick="postMyForm();" value="Update"> 
     </td> 
    </tr> 
</table> 
</form> 
0

我沒有看到你初始化變量i。我們看不到所有的來源,但我想這可能是問題所在。

0

應該是裏面元素input元素...

0

你爲什麼不只是失去了櫃檯做這樣的:

<input name="os[]" type="text" class="os" value="" size="24" maxlength="60" /> 

在添加行動態,你必須綁定(」點擊')或者只使用live()方法。