其实我不是js开发者。获取元素有一些问题(select.value) 我的浏览器说我:未捕获的ReferenceError:未定义getprice
我可以理解jquery可以通过id select.value获取元素。我怎么解决它? 谢谢!
Js代码:
function getprice() {
$.ajax({
type: "POST",
url: "<?=Core_Config::$Link?>store/cart",
data: {
pay_type: $("#pay_type").val();,
delivery_type: $("#delivery_type").val();,
totalprice: "<?=$total?>"
},
success: function(html) {
$("#content22").html(html);
}
});
}
HTML:
<tr>
<td><span class="required">*</span> Delivery:</td>
<td>
<select name="address[delivery]" id="delivery_type">
<? foreach ($this->db->query($this->delivery) as $delivery ): ?>
<option value="<?=$delivery['id']?>"><?=$delivery['name']?> (<?=$delivery['cost']?> грн)</option>
<? endforeach; ?>
</select>
</td>
</tr>
<tr>
<td><span class="required">*</span> Payment:</td>
<td>
<select name="address[paytype]" id="pay_type" onchange="getprice();">
<? foreach ($this->db->query($this->payType) as $paytype ): ?>
<option value="<?=$paytype['id']?>"><?=$paytype['name']?> (<?=$paytype['cost']?> грн)</option>
<? endforeach; ?>
</select>
</td>
</tr>
答案 0 :(得分:0)
function getprice() {
$.ajax({
type: "POST",
url: "<?=Core_Config::$Link?>store/cart",
data: {
pay_type: $("#pay_type").val(), //<--removed ;
delivery_type: $("#delivery_type").val(), //<--removed ; also
totalprice: "<?=$total?>"
},
success: function(html) {
$("#content22").html(html);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
<td><span class="required">*</span> Delivery:</td>
<td><select name="address[delivery]" id="delivery_type">
<? foreach ($this->db->query($this->delivery) as $delivery ): ?>
<option value="<?=$delivery['id']?>"><?=$delivery['name']?> (<?=$delivery['cost']?> грн)</option>
<? endforeach; ?>
</select> </td>
</tr>
<tr>
<td><span class="required">*</span> Payment:</td>
<td><select name="address[paytype]" id="pay_type" onchange="getprice();">
<? foreach ($this->db->query($this->payType) as $paytype ): ?>
<option value="<?=$paytype['id']?>"><?=$paytype['name']?> (<?=$paytype['cost']?> грн)</option>
<? endforeach; ?>
</select> </td>
</tr>
如果你包含jQuery就可以了。
答案 1 :(得分:0)
你在HTML中使用过最新的jquery吗?这可能是由于冲突以及将获取价格的javascript代码放在html的底部。
在代码中使用最新的jquery文件 https://jquery.com/download/
答案 2 :(得分:0)
这是因为浏览器无法找到方法getprice()定义。
您确定,您已在页面中包含了getprice()函数定义。如果没有,请将该功能保留在<script>
标记内的文件底部:
<script type="text/javascript">
function getprice() {
$.ajax({
type: "POST",
url: "<?=Core_Config::$Link?>store/cart",
data: {
pay_type: $("#pay_type").val();,
delivery_type: $("#delivery_type").val();,
totalprice: "<?=$total?>"
},
success: function(html) {
$("#content22").html(html);
}
});
}
<script>