2011-03-15 120 views
0

比方说,我有一个多选框:触发改变在多选择选择

<select id="sel" multiple="multiple"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="9">Nine</option> 
    <option value="10">Ten</option> 
</select> 

要选择的项目,你可以按住Ctrl键点击单个项目。我想在用户完成选择项目后从这个选择框中保存数据。我怎样才能做到这一点?

我想过使用setTimeout并在onChange事件触发后保存500ms,但我不知道这是否是最好的主意。

$('#sel').change(function(){ 
    setTimeout(saveData, 500); 
}); 

我知道我可以添加一个'保存'按钮,但我想保存在飞行中的数据。

什么是从一个多选框中(在用户选择项目之后)保存数据的最佳方式?

回答

1

我会做onchange,经过这么多的时间已经过去了保存它像你,只有我会改变的事情是每个变化重置timeout所以它只做它最终onchange

沿着这些线的东西。

var changeTimeout; 

$('#sel').change(function(){ 
    clearTimeout(changeTimeout); 
    changeTimeout = setTimeout(function(){saveData()}, 1000); 
}); 
+1

这是一个好主意,为什么我不这么想?我想我需要更多的咖啡因。 – 2011-03-15 15:58:45