我有一个应用程序,可以为我们的制作团队创建和打印看板卡。一切都工作正常,直到部件号包含'#'标志。我研究并发现了一些相关帖子,说明该标志之后的所有内容都不会返回服务器。
我的问题是包含#符号的部件号不会被正确查询,因此该卡的条形码图像将不会显示,这是我的代码:
<% if @card.area.name != "FG" %>
<div style="text-align:center;"><%= image_tag "#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + "-" + "#{@card.card_index}" + ".png" %></div>
<% else %>
<div style="text-align:center;"><%= image_tag "#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + ".png" %></div>
<% end %>
我是Rails的新手,甚至更新的Javascript和可用的不同库。
关于如何使用ajax或javascript正确获取@card.part_no
值的任何方向?
很抱歉,如果我的帖子不清楚,感谢您的帮助。
的Jaime。
答案 0 :(得分:0)
您可以将#s替换为您知道永远不会出现在部件编号中的占位符,例如&amp;或^然后在服务器端将其移回原来
$("card_from").submit( function() {
card_no_element = $("card_no_input")
var old_val = $(card_no_element).val();
$(card_no_element).val(old_val.replace(/#/,"^"));
})
然后可能在模型中我会
Card << ActiveRecord::Base
...
before_save :replace_carrots_with_dollars
def replace_carrots_with_dollars
self.part_no.gsub!("^","#")
end
end
可能不是最好的解决方案,但它应该做的伎俩
答案 1 :(得分:0)
解决了我的问题的方法是使用url_encode方法对URL进行编码,以便浏览器不会将#符号解释为锚点。
<div style="text-align:center;"><%= image_tag url_encode("#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + "-" + "#{@card.card_index}" + ".png") %></div>
这将采取以下措施:
2134323#1-1-6-ASDS.png
输出:
2134323%231-1-6-ASDS.png
因此,允许应用程序正确找到资产。
我很感激帮助,我希望这对其他人有用。
的Jaime。