2013-03-23 72 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

相关问题