javascript onchange无法正常工作

时间:2015-06-21 06:17:56

标签: javascript jquery html angularjs

我希望在第一个输入框中的文本更改时调用updatemission函数,并在第二个输入框中的文本更改时调用updatemissionpoint,但是在此处不起作用。 这是我调用这两个函数的html代码片段

<input id="mission-{{mission.id}}" onchange="updatemission(mission.id, mission.missioninfo)" type="text" ng-model="mission.missionInfo" class="form-control" >

<input id="point-{{missioncontent.id}}" type="text" ng-model="missioncontent.info" class="form-control">

这些是javascript函数

$scope.updatemission = function(missionid, info){
        alert("changed");
    };

    $scope.updatemissionpoints = function(missionpointid, info){

    };

我希望在文本框中完成所有编辑后调用这些函数。我正在使用角度js,所以使用角度js或jquery的解决方案将会有所帮助。

3 个答案:

答案 0 :(得分:3)

使用ng-blur - angular

<input id="mission-{{mission.id}}" ng-blur="updatemission(mission.id, mission.missioninfo)" type="text" ng-model="mission.missionInfo" class="form-control" >

<input id="point-{{missioncontent.id}}" type="text" ng-model="missioncontent.info" class="form-control" ng-blur="updatemissionpoints(missioncontent.id, missioncontent.info) ">

答案 1 :(得分:0)

我认为你能做的最好的事情就是在这里使用ng-change指令。

ng-change将&gt;在用户更改输入时评估给定的表达式。

onchange超出角度范围(onchange是javascript更改事件,而不是直接与角度相关)因此它不会调用传递给onchange事件的范围属性。但ng-change将执行您传递的范围属性。

<input id="mission-{{mission.id}}" ng-change="updatemission(mission.id, mission.missioninfo)" type="text" ng-model="mission.missionInfo" class="form-control" >

这是DEMO

答案 2 :(得分:-1)

尝试使用JavaScript的onblur     

<input id="point-{{missioncontent.id}}" type="text" ng-model="missioncontent.info" class="form-control">

当对象失去焦点时,脚本会运行