2013-04-12 19 views
1

我可以成功更改firefox中的图表选项,但它在chrome中无效(无错误)。我已经阅读了几乎所有关于这个问题的主题,但是他们都没有为我工作。用户选择选项时捕捉的正确方法是什么?选择选项onclick功能在FF中可用,但在Chrome中不可用

enter image description here

<select id="sortby2"> 
    <option id="byweek" value="date">7 days</option> 
    <option id="by14" value="spent">14 days</option> 
    <option id="bymonth" value="clicks">30 days</option> 
</select> 

$("#by14").OnClick(function(){ 
$.ajax({ 
    type: "POST", 
    url: "chartdata.php", 
    data: 'by14=on',datatype:"html", async: false, 
    success: function(d){ 
    $('.cantent').html(d);  
    }  
}); 
}); 
+0

使用的onchange功能 – Dineshkani

+0

'$( “#by14”)变化(函数(){' –

+0

的选择选项更改,在jQuery中,您可以使用[change](http://api.jquery.com/change/)事件。 –

回答

2

您可能需要使用change()而不是click事件。

$("#sortby2").change(function(){ 

    if($(this).find('option:selected')[0].id != 'by14') 
      return; 

    $.ajax({ 
     type: "POST", 
     url: "chartdata.php", 
     data: 'by14=on',datatype:"html", async: false, 
     success: function(d){ 
     $('.cantent').html(d);  
     }  
    }); 
}); 
+0

确定,但它应该只与选择标识符一起工作。我如何监听是否有人更改选项?我编辑了我的问题我的选择代码也 – user198989

+0

你必须给ID选择不选项,你需要绑定更改以选择ID sortby2,检查我更新的答案 – Adil

+0

Co纠正我,如果我错了,但不是这运行任何用户选择?我只想在用户点击14选项时运行此操作。 – user198989

1

监听select元素上的“更改”事件。这是最好的使用jQuery的on()功能进行注册:

$("#sortby2").on('change', function(){ 
    if($(this).val() === 'spent') { 
     $.ajax({ 
      type: "POST", 
      url: "chartdata.php", 
      data: 'by14=on',datatype:"html", async: false, 
      success: function(d){ 
       $('.cantent').html(d);  
      }  
     }); 
    } 
}); 
+0

好吧,但它只应用于选择ID。如果有人更改选项,我怎么能听?我也用我的选择代码编辑了我的问题。 – user198989

+0

啊,你应该把监听器附加到select元素而不是选项。我更新了我的答案中的代码,以反映... – cfs

+0

纠正我,如果我错了,但不是这运行任何用户选择选项?我只想在用户点击14选项时运行此操作。 – user198989

0

使用没有$("#by14").onclick

相关问题