JS(JQuery) - 未定义

时间:2016-02-19 10:14:08

标签: javascript php jquery ajax

其实我不是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>

3 个答案:

答案 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>