jquery - on(“更改”,函数()在IE 9中不起作用

时间:2013-01-08 03:56:41

标签: ajax jquery

我遇到的问题是jquery on function在除IE之外的所有浏览器中都有效。

jquery代码如下:

$('#FormIndustryId, #FormIndustries').on("change", function () {
  if ($(this).val()) {
    $.getJSON('/categories/list_categories/industry_id:' + $(this).val(),
    function (cats) {
      if (cats !== null) {
        populateCategorySelect(cats);
      }
    });
  }
});

从前端角度来看,可以在此处测试:http://www.beanclaim.com/ - 有一个标签为行业选择的字段,这是分配了#FormIndustries的下拉列表,它应该在选择行业时使用ajax内容更新第二个下拉列表。它可以运行Chrome,Firefox和Safari,但它似乎在IE中无能为力。

任何想法我做错了什么?感谢

2 个答案:

答案 0 :(得分:2)

这是因为只有在IE中才能执行此代码:

// IF IE (BROWSER) USE jQUERY TO SET THE PLACEHOLDER
   // -------------------------------------------------->
    if ( $.browser.msie ) {
        $("#TemplateName").placeholder();
        $("#FormIndustries").placeholder();
    }

但是,这会返回这个JS错误:

SCRIPT438: Object doesn't support property or method 'placeholder' 

并阻止您的JS正常执行。我不知道占位符是什么(IE也不是:)),但是如果你解决了这个问题,那么页面在IE中运行得很好。

答案 1 :(得分:0)

编写完全相同的功能,但使用以下命令进行复制:

$('#FormIndustryId, #FormIndustries').on("click", ...