我有一系列选择列表,我用来填充带有ID的文本框。 所以你单击一个选择选项,另一个文本框中填充了它的id。
只有一个select / id对,这个工作正常,但我有倍数,唯一改变的是select和input的id ..实际上只是结束更改,输入都以featredproductid和选择ID都以recipesproduct开头,然后都以类别结束。
我知道为每个类别一遍又一遍地列出这个并不是这样做的方法。我想我需要制作一系列类别 var cats = ['橄榄油',“谷物”,“意大利面”] 然后使用forEach函数?可能?
这是笨重的代码
window.addEvent('domready', function() {
$('recipesproductoliveoil').addEvent('change', function(e){
pidselected = this.options[this.selectedIndex].getProperty('value') ;
$("featuredproductidoliveoil").setProperties({
value: pidselected}); ;
});
$('recipesproductgrains').addEvent('change', function(e){
pidselected = this.options[this.selectedIndex].getProperty('value') ;
$("featuredproductidgrains").setProperties({
value: pidselected}); ;
});
$('recipesproductpasta').addEvent('change', function(e){
pidselected = this.options[this.selectedIndex].getProperty('value') ;
$("featuredproductidpasta").setProperties({
value: pidselected}); ;
});
$('recipesproductpantry').addEvent('change', function(e){
pidselected = this.options[this.selectedIndex].getProperty('value') ;
$("featuredproductidpantry").setProperties({
value: pidselected}); ;
});
});
请记住这是mootools 1.1(不,我不能更新它抱歉)。 我相信这是一种基本的东西,我似乎把我的大脑包裹起来。但我很确定这样做并不是很好......
答案 0 :(得分:1)
你很亲密。这就是你如何做到的:
var cats = ['oliveoil', 'grains', 'pasta'];
for (i in cats) {
addChangeFunction(cats[i]);
}
function addChangeFunction(name) {
$('recipesproduct' + name).addEvent('change', function(e) {
pidselected = this.options[this.selectedIndex].getProperty('value');
$('featuredproductid' + name).setProperties({
value: pidselected
});
});
}
答案 1 :(得分:0)
这样的事情可能有所帮助:
function bindSelectFeature(select, featured) {
$(select).addEvent('change', function(e){
pidselected = this.options[this.selectedIndex].getProperty('value') ;
$(featured).setProperties({
value: pidselected
});
});
});
bindSelectFeature('recipesproductpasta','featuredproductidpasta');