我有一个 html 文档,其中包含:
<li id="li_273" data-pricefield="special" data-pricevalue="0" >
<label class="description" for="element_273">Helium Foil Balloon #1 </label>
<div>
<input type="text" class="element text medium" id="element_273" name="element_273" size="30" value="" />
<input type="hidden" id="element_273_price" name="element_273_price" value="">
</div>
</li>
那么,该区域就是一个 ajax 下拉菜单。从 ajax/php 下拉列表中,我可以执行 onclick 命令 - 这就是我所拥有的:
'onclick' => 'document.getElementById(\'li_273\').data(\'pricevalue\',\'1.00\');',
这一切都经过 json_encoded,这是它返回的部分:
"onclick":"document.getElementById('li_273').data('pricevalue','1.00');",
但是当我从 ajax 菜单中选择某些内容并单击时,我收到一条错误消息:
Uncaught TypeError: Object #<HTMLLIElement> has no method 'data'
我一生都无法弄清楚这一点,我需要它做的只是更新页面上的价格。
更新:这是尝试让它实际计算的其余代码 页面上的 JavaScript:
$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e) {
var temp = $(this).attr("id").split('_');
var element_id = temp[1];
var pricedef = $(this).data('pricedef');
if(pricedef == null){
pricedef = 0;
}
$("#li_" + element_id).data("pricevalue",pricedef);
calculate_total_payment();
});
好像缺少什么?因为它不会更新页面上的总数。
最佳答案
.data
是一个 jquery 函数,您可能尝试在 dom 对象上调用它。确保您的页面上加载了 jQuery,然后执行以下操作:
jQuery('#li_273').data('pricevalue','1.00');
关于php - 使用 Ajax 的 Json 编码 JavaScript 会抛出错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997331/