点击事件不会使其他字段一次性编辑?

时间:2017-06-20 14:14:45

标签: javascript jquery angularjs

<!--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并且我们点击了字段,但它需要两次点击...

感谢每一位帮助。

3 个答案:

答案 0 :(得分:1)

尝试更改点击以进行ng-click。

答案 1 :(得分:1)

你需要纠正一些代码:

  1. 点击更改为ng-click,因此可以从HTML调用您的函数。
  2. readonly更改为ng-readonly,以便您可以使用$scope属性
  3. ng-init中,我猜您需要调用Initializer()方法来初始化默认值。
  4. 此外,只需制作2个输入框readonly,就可以通过1个标记来清除它。并且没有字符串比较。

    简单演示:

    &#13;
    &#13;
    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;
    &#13;
    &#13;

答案 2 :(得分:0)

这里有两个作用域

javascript和angular 有时在ng-click中,javqascript函数不起作用

因此将单击更改为ng单击。

相关问题