2013-03-23 123 views
1

我有一個像這樣使用jquery的Ajax方法。jquery在Ajax成功返回一些不需要的數據

function add_item() 
{ 
item_name=$("#item_names").val() 
var pars = item_name; 
$.ajax({ 
      url: "/billing/add_bill_detail", 
      type: "get", 
      dataType: "html", 
      data: {"pars" : pars}, 
      success: function(returnData){ 
      alert(returnData) 
      $("#aaa").append(returnData).html; 
      } 
     }); 

}

,如果我把警報的returnData與一些額外的數據返回。如下所示。

<!DOCTYPE html> 
<html> 
<head> 
<title>SamplePro</title> 

<script src="/javascripts/jquery.js?1363935663" type="text/javascript"></script> 
<script src="/javascripts/jquery_ujs.js?1363935663" type="text/javascript"></script> 
<script src="/javascripts/application.js?1362549711" type="text/javascript"></script> 
<script src="/javascripts/jquery.js?1363935663" type="text/javascript"></script> 
<script src="/javascripts/application.js?1362549711" type="text/javascript"></script> 
</head> 
<body> 

<tr class="tablehead"> 
<td> 
BAB-001 
</td> 
<td> 
BABY MASK 1 
</td> 
<td> 
</td> 
<td> 
    <input id="tax_rule_tax_rule" name="tax_rule[tax_rule]" size="30" type="text" value="sfdsf" /> 
</td> 
</tr> 
</br> 


</body> 
</html> 

但文件add_bill_detail actutall包含

<% if from != "reload" %> 
<tr class="tablehead"> 
<td> 
<%=from ? item_details.item.item_code : ""%> 
</td> 
    <td> 
    <%=from ? item_details.item.name : ""%> 
    </td> 
<td> 
</td> 
    <td> 
    <%= text_field 'tax_rule', 'tax_rule',:value => "sfdsf" %> 
    </td> 
    </tr> 
<%end%> 
</br> 

請幫我刪除不需要的數據。在此先感謝..

更新問題:

我已經添加了follwoing腳本

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> 

我實際的,因爲這個問題是..

enter image description here

這裏所有的來自add_bill_detail的值將在一列之下。它應該去4列。 enter image description here

更新add_bill_detail代碼..

<table> 
<tr class="tablehead"> 
<td> 
<%=from ? item_details.item.item_code : ""%> 
</td> 
<td> 
<%=from ? item_details.item.name : ""%> 
</td> 
<td> 
</td> 
<td> 
    <%= text_field 'tax_rule', 'tax_rule',:value => "sfdsf" %> 
</td> 
<td> 
    <%= text_field 'tax_rule', 'tax_rule2',:value => "vvvv" %> 
</td> 
</tr> 
</table> 
+0

裏面'add_bill_detail'只是輸出表格代碼不html和其他代碼.. – 2013-03-23 05:43:18

+0

@DipeshParmar我沒有得到。請張貼答覆。 – 2013-03-23 05:44:16

+0

您的腳本是否包含任何類型的頁眉和頁腳代碼..? – 2013-03-23 05:48:34

回答

0

如果你想獲得<tr class="tablehead">標籤,只需使用.filter()方法。

alert($(returnData).filter('tr.tablehead').html())應該工作!

編輯:您正在使用沒有父table標記的tr標記。因此,它們在瀏覽器呈現的HTML中被忽略,瀏覽器剝離tr標籤並僅顯示文本。由於jQuery對呈現的html起作用,它的行爲是相同的。

修復:包裝tr標籤與父母table標籤,你應該很好去。

什麼,我的意思是:

<table> 
    <tr class="tablehead"> 
    <td> 
    BAB-001 
    </td> 
    <td> 
    BABY MASK 1 
    </td> 
    <td> 
    </td> 
    <td> 
     <input id="tax_rule_tax_rule" name="tax_rule[tax_rule]" size="30" type="text" value="sfdsf" /> 
    </td> 
    </tr> 
</table> 

通知的table標籤包裹你的tr標籤。

如何避免將來出現這個問題?

請務必使用Chrome中的Inspect Element和Firefox中的Firebug工具來檢查呈現的HTML的外觀。如果你會爲你的桌子做這件事,你會注意到tr標籤被瀏覽器剝離了。

+0

其提供的錯誤如下returnData.find不是函數 alert(returnData.find('tablehead')。html()) – 2013-03-23 06:00:24

+0

@poojaagarwal好吧!我錯了。我認爲你有returnData作爲jquery對象。嘗試使用'alert($(returnData).filter('。tablehead')。html())' – 2013-03-23 06:05:43

+0

它的警報未定義。 – 2013-03-23 06:09:24