值undefined onChange multiselect下拉列表

时间:2017-11-16 07:19:20

标签: javascript javascript-events javascript-objects

我正在使用多选下拉菜单,我希望得到值onChange事件。我有两个函数main函数和函数b,函数b我用于onChange事件。

我创建了函数b的对象以在main函数中获取它的值。

我想在主要功能中获得它的价值。

现在的问题是,如果我创建了对象,则函数b在变化时获得值但不显示它。

如果我将字符串分配给this.selected_cats = 'some string';,它在主函数中完美显示。但是,如果我将所选类别分配给this.selected_cats = elem;,则表示在控制台中未定义。如果我说onChange="alert(this.value)";,这表明我的价值很好。

function b (elem){
 this.selected_cats = elem;
};

var obj_b = new b();

function main(){
   console.log(obj_b.selected_cats);
}

<select name='category[]' id="select_cats" onchange="b(this.value);" multiple="multiple">

这样它也显示我的价值也很好??? 我的意思是不使用对象

  function b (elem){
  var show_value = elem;
  console.log(show_value);
  };

1 个答案:

答案 0 :(得分:0)

您需要在b的实例上调用函数才能更改其值。 EG:

function b (elem){
 this.selected_cats = elem;
};

var obj_b = new b();
obj_b.onChange = function (elem){
 this.selected_cats = elem;
};

function main(){
   console.log(obj_b.selected_cats);
}

<select name='category[]' id="select_cats" onchange="obj_b.onChange(this.value);" multiple="multiple">