【问题标题】:drop down menu selection using console doesn't trigger event使用控制台的下拉菜单选择不会触发事件
【发布时间】:2016-09-01 17:29:39
【问题描述】:

我想在控制台的帮助下为字段设置值,但是当我这样做时,它不会触发当我从下拉列表中选择选项时应该发生的事件。它只在下拉菜单字段中显示选定的值,但事件没有发生。

我在控制台上使用以下查询:

document.getElementsByClassName("input-text")[5].value="string:100#2#######" 

以下是 HTML 选择的代码:-

<select class="input-text ng-pristine ng-valid ng-touched" ng-model="selectedSname" ng-show="snames != null &amp;&amp; (name712 != null &amp;&amp; name712 != '')" ng-options="sname.surveypins as sname.fullname for sname in snames">
  <option selected="selected"></option>
  <option label="1" value="string:55#9####### ">abc</option>
  <option label="2" value="string:100#2####### ">xyz</option>
</select>

【问题讨论】:

  • angular.element(document.getElementsByClassName("input-text"))[5].XXXXXXXXXX 应该选择什么 XXXXXXXXX 你能帮我@yash

标签: javascript jquery


【解决方案1】:

您必须手动调用onchange 方法,例如:

HTML:

<select id="test">
  <option value="1">1</option>
  <option value="2">2</option>
</select>

JS:

document.getElementById('test').onchange = function () {
    alert('changed');
}

document.getElementById('test').value = "2";
document.getElementById('test').onchange();

一个有效的 JSFiddle 是 here


因为您使用的是 AngularJS,所以我们必须像这样以角度方式选择选项:

$scope.selectedSname = "string:100#2#######";

所以 Angular 会捕捉到您的更改并触发摘要循环,这将触发更改事件。

【讨论】:

  • 谢谢你。@MuhmmadAref 你能不能请提供我 angularJS 查询来做到这一点。
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
相关资源
最近更新 更多