无法从绑定函数jQuery中的下拉列表中获取选定值

时间:2018-01-23 07:41:34

标签: javascript jquery events jquery-events

我的伪代码

$("#oneElement").bind(
    "change",
    {
        field:$("#theDropDownList").find("option:selected").text()
    },
    theFunction
);

$("#oneElement")发生变化时,会调用theFunction (event) {},我希望在$("#theDropDownList")中找到event.data.field中的选定值。

field永远不会在我加载网页后更新,即使多次更改$("#oneElement")后也是如此。

**编辑:** theFunction看起来像

function theFunction(event) {
    console.log(event.data.field);
    //do whatever
} 

欢迎所有帮助!

2 个答案:

答案 0 :(得分:0)

对象值在绑定期间计算一次,并在触发事件时传递给函数。如果你想实时获得价值,你不应该在绑定时将其作为数据传递。从函数中获取它,因为它在触发事件后执行。



$("#oneElement").bind(
    "change",
    {
        field:$("#theDropDownList").find("option:selected").text()
    },
    function(event){
    	//bind time
    	console.log(event.data.field);
      //run time
      console.log($("#theDropDownList").find("option:selected").text());
    }
);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="" id="theDropDownList">
  <option value="1">text 1</option>
  <option value="3">text 2</option>
  <option value="3">text 3</option>
</select>

<input type="text" id="oneElement"/>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

我建议您使用bind,而不是弃用的on

你可以这样做:

$("#oneElement").on("change", theFunction);

function theFunction() {
  var someValue = $("#theDropDownList").find("option:selected").text();
}