繁体   English   中英

onchange事件不起作用

[英]onchange event is not working

我已经在选择框中正确添加了更改事件,但是它不起作用。任何线索都将不胜感激。在此先感谢

HTML

[<select  id="notifyBy" ng-change="selectchange()" style="border:none" class="formtext1" ng-model="selectvalue"  >
                            <option value="1">E-mail, telephone, etc.</option>
                            <option>Telephone No:</option>
                            <option>Telephone No:</option>
                            <option>Telephone No:</option>
                            <option>Telephone No:</option>
                        </select>][1]

controller

angular.module('starter.controllers', [])

[.controller('AppCtrl',\['$scope',function($scope, $ionicModal, $timeout,$location,$ionicPopover,$http,$ionicNativeTransitions) {

$scope.selectchange = function() {
       alert("enterd");
      }][1]
}])

您缺少期权的价值

<option value="2">Telephone No:</option>

细节

<option value="1">E-mail, telephone, etc.</option>
<option >Telephone No:</option> <!--Added value attribute here -->
<option >Telephone No:</option> <!--Added value attribute here -->

这里的问题是

  1. 当您从选项1(电子邮件,电话等)将值更改为选项2(电话号码:)时,它将触发onchange事件

  2. 当您将值从选项2(电话号码:)更改为选项3(电话号码:)时,因为值没有变化,它不会触发onchange事件。

因此,您应该为所有人设置不同的值。

解决方案1:

<option value="2">Telephone No:</option> <!--Added value attribute here -->
<option value="3">Telephone No:</option> <!--Added value attribute here -->

解决方案2:

<option>Telephone No:1</option> <!--Added value attribute here -->
<option>Telephone No:2</option> <!--Added value attribute here -->

 angular.module('starter', []) .controller('AppCtrl', ['$scope', function($scope, $ionicModal, $timeout, $location, $ionicPopover, $http, $ionicNativeTransitions) { $scope.selectchange = function() { alert("enterd"); } } ]) 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="starter" ng-controller="AppCtrl"> <select id="notifyBy" ng-change="selectchange()" style="border:none" class="formtext1" ng-model="selectvalue"> <option value="1">E-mail, telephone, etc.</option> <option value="2">Telephone No:</option> <!--Added value attribute here --> <option value="3">Telephone No:</option> <!--Added value attribute here --> <option value="4">Telephone No:</option> <option value="5">Telephone No:</option> </select> </div> 

问题是因为您一次又一次选择相同的值。

尝试为每个选项添加一个值。

DEMO

 var app = angular.module('todoApp', []); app.controller("dobController", ["$scope", function($scope) { $scope.selectchange = function() { alert("enterd"); } } ]); 
 <!DOCTYPE html> <html ng-app="todoApp"> <head> <title>To Do List</title> <link href="skeleton.css" rel="stylesheet" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script> </head> <body ng-controller="dobController"> <select id="notifyBy" ng-change="selectchange()" style="border:none" class="formtext1" ng-model="selectvalue"> <option value="1">E-mail, telephone, etc.</option> <option value="2">Telephone No:</option> <option value="3">Telephone No:</option> <option value="4">Telephone No:</option> <option value="5">Telephone No:</option> </select> </body> </html> 

Angular似乎很困难,因此我们很少有机会从头到尾犯错,在这里我看到的一些事情还没有完成。

  1. 添加“ ng-app”或引导应用程序以使用角度特征。
  2. 另外,我在html代码的任何地方都看不到ng-controller。
  3. 注射应正确完成。 然后在函数括号中出现的一个是实际服务的别名。

太好了,您在这里:

angular.module('starter.controllers', [])
.controller('AppCtrl',['$scope',function($scope) {
    $scope.selectchange = function() {
      alert("enterd");
    }
}]);

angular.bootstrap(document, ['starter.controllers']);

JSFiddle链接https : //jsfiddle.net/Ashokkumargupta/8a7zxdq4/1/

干杯,阿肖克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM