<!--Below is the html code-->
<div ng-init="InitializeFields()">
<input type="text" on-click="makeOtherReadOnly('1')"
readonly="show_or_not_first"/>
<input type="text" on-click="makeOtherReadOnly('2')" readonly="show_or_not_second"/>
</div>
//现在在javascript中
$scope.makeOtherReadOnly=function(number){
if(number==='1'){
show_or_not_second=true;
show_or_not_first=false;
show_or_not_second=true;
}else if(number==='2'){
show_or_not_first=true;
show_or_not_second=false;
}
};
$scope.Initializer=function(){
show_or_not_first=false;
show_or_not_second=false;
}
$scope.Initializer();
我面临的问题是当我点击输入字段时,它应该在pafe加载后将其他字段转为readonly并且我们点击了字段,但它需要两次点击...
感谢每一位帮助。
答案 0 :(得分:1)
尝试更改点击以进行ng-click。
答案 1 :(得分:1)
你需要纠正一些代码:
ng-click
,因此可以从HTML调用您的函数。readonly
更改为ng-readonly
,以便您可以使用$scope
属性ng-init
中,我猜您需要调用Initializer()
方法来初始化默认值。此外,只需制作2个输入框readonly
,就可以通过1个标记来清除它。并且没有字符串比较。
简单演示:
angular.module('myApp', []).controller('myCtrl', function($scope) {
$scope.makeOtherReadOnly = function(boolValue) {
console.log(boolValue);
$scope.data.first = boolValue;
};
$scope.Initializer = function() {
$scope.data = {
first: false
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-init="Initializer()">
First: <input type="text" ng-click="makeOtherReadOnly(false)"
ng-readonly="data.first" />
Second: <input type="text" ng-click="makeOtherReadOnly(true)"
ng-readonly="!data.first" />
</div>
</div>
&#13;
答案 2 :(得分:0)
这里有两个作用域
javascript和angular 有时在ng-click中,javqascript函数不起作用
因此将单击更改为ng单击。