我的Javascript代码没有'铬不能工作

My Javascript code doesn't work in chrome

本文关键字:不能 工作 Javascript 代码 我的      更新时间:2023-09-26

我在页面上编写ajax,以在select选项中获取子类别,具体取决于类别选项列表点击。在所有浏览器中,它都运行良好,我可以在浏览器控制台中看到我的请求、响应。。。但在chrome中,函数甚至不调用。你知道吗,在什么问题?这是我的代码:

    <td>
      <span style="color: #898989;">Main categories</span>
      <br />
      <select style="width: 200px;">
        <?foreach ($main_categories as $item){?>
        <option onclick="get_sub_cat(<?=$item['id']?>,2);return false;" value="<?=$item['id']?>"><?=$item['title']?></option>
        <?}?>
      </select> 
    </td>
    <td>
      <span style="color: #898989;">Subcategories</span>
      <br />
      <select  name="sub_cat" style="width: 200px;" id="prod_subcat_2">
      </select> 
    </td>

function get_sub_cat(id, select_id){
$.ajax({
   type: "POST",
   url: "<?=base_url()?>admin/product/get_sub_cat/"+id,
   data: "",
   success:function (option_list) {
     $("#prod_subcat_"+select_id).children().remove();
     $('#prod_subcat_'+select_id).append(option_list);
   }
 });
}

<option>元素onclick不是普遍支持的,而是使用父<select> 的事件

$('#theselect').change(function() {
   alert( $(this).val() );
});​

1)如果您在本地文件夹上运行,而不是在服务器上运行,那么chrome出于安全原因不运行这些类型的javascript调用。如果是这样的话,在chrome上运行本地javascript ajax调用会导致堆栈溢出。

2) 尝试使用简单警报("嘿")的javascript;以检查javascript是否工作或其ajax是否工作。

3) 如果javascript有效。使用谷歌"开发工具"ctrl+shift+i,在javascript调用上设置断点,并检查作为变量传递的内容以及问题所在。

4) 如果javascript不起作用,试试这个http://support.google.com/chrome/bin/answer.py?hl=en&answer=114662

尝试附加一个onchange事件处理程序,并从事件中传入的select元素中获取所选元素。将事件处理程序附加到各个选项可能没有意义。

您需要添加一些引号:

get_sub_cat('"<?=$item['id']?>'",2)

您需要将此参数作为字符串发送。

你确定你的JavaScript在<script>标签中吗?问题不显示

<script>
   // your javascript
</script>