【发布时间】:2012-03-31 15:28:40
【问题描述】:
我需要能够根据电子邮件地址从外部来源接收运输信息并将数据插入到运输信息表单中。
ajax 请求在空白页面上运行良好,但是当我在单击按钮时将代码添加到单页结帐模板时,ajax 查找并未启动,而是浏览器的行为就像我单击了“继续”按钮。
我无法理解 magento 中外部和内联 JS 的混合,所以我看不出是什么导致了这个问题。
我的外部 php 文件返回一个 json 对象,它是一个具有以下值的数组: [0] - 街道 1 - 城市 [2] - 地区 [3] - 邮政编码 [4] - 国家
请注意,我使用的是找到 here 的 jQuery Ajax 表单插件:
在 template/checkout/onepage/shipping 中,我在第 38 行添加了以下代码:
<form id="treat-email" action="treatme.php" method="post">
Email: <input type="text" name="treat-email" />
<input type="submit" value="Get Address" />
</form>
<script>
jQuery(document).ready(function() {
jQuery('#treat-email').ajaxForm({
dataType: 'json',
success: processJson,
error: function(){
alert("You Failed!");
},
});
});
function processJson(data){
jQuery('#shipping:street1').val(data[0]);
jQuery('#shipping:city').val(data[1]);
jQuery('#shipping:region').val(data[2]);
jQuery('#shipping:postcode').val(data[3]);
jQuery('#shipping:country').val(data[4]);
}
</script>
【问题讨论】:
-
我不认为这是相关的,但是你在错误函数后面多了一个逗号。
-
哎呀,是的,这没什么区别,因为脚本在单页结帐的上下文中运行良好
-
你确定 jquery 被包含并且 noConflict() 被调用了吗?
-
如果您使用的是firefox检查错误控制台。
-
绝对没有冲突。
标签: jquery ajax magento checkout