2012-05-15 35 views
4

我是一个新的jquery/js用户,试图将选择器的参数传递给函数。下面是一些代码:将选定的值传递给使用jquery选择器的函数

// function to select data 
var data = [ 
    {val: 10, year: 1990}, {val: 20, year: 1991} 
] 
var year_data = [] 
function select_year_data(y) { 
    year_data = data.filter(function(d) {return d.year==y}) 
} 

//选择

<select name="Year" id = "year_menu" style="width: 230px; position: absolute; left: 400px; top: 50px"> 
<option value=1990>1990</option> 
<option value=1991>1991</option> 
</select> 

我想什么做的是这样的:

<onchange>select_year_data($('#year_menu.val()') 

但我知道这是不是很对。

回答

5

Jquery的变化的方法可以在这里使用Change()

$(function() 
{ 
    $('#year_menu').change(function(){ 
     select_year_data($(this).val()) 
    }); 
}); 
+0

伟大的解决方案。谢谢! – guero64

1

是什么?

function select_year_data() { 
    var y = $('#year_menu.val()'; 
    year_data = data.filter(function(d) {return d.year==y}) 
} 
+0

看起来很棒 - 你可以让我知道如何在改变选择器时启动事件(例如集成onclick部分) – mike

+0

第二行的语法是var y = $('#year_menu')。val(); –

+0

但我如何确保在更新选择器选项时重新执行该功能? – mike

1

如果您使用的功能$.onchange的回调,那么你将永远有基于变量year_data

选择的用户选择的数据
function select_year_data() { 
    var y = $(this).val(); 
    year_data = data.filter(function(d) {return d.year==y}); 
} 
// call that func on change event 
$('#year_menu').change(select_year_data); 

// or straight forward one without another function 
$('#year_menu').change(function(){ 
    var y = $(this).val(); 
    year_data = data.filter(function(d) {return d.year==y}); 
}); 
// assuming year_data and data is declared in global scope. 
相关问题