根据AngularJS的输入更改按钮名称

时间:2016-03-02 16:24:34

标签: javascript angularjs

如何更改依赖于某些输入是否为空的按钮名称 示例:如果input1和input2不为空但input3为空 - 按钮名称为"测试"。

这是我的代码,但我没有工作

    <div ng-app="myApp">
<form action="lab2.php" method="POST" ng-controller="controller">
<label>ID</label>
<input type="number" name="id" ng-model="id" name="id"/>
{{id}}
<label>Name:</label>
<input name="name" ng-model="name"  type="text"/>
<label>City:</label>
<input name="country" ng-model="country" type="text"/>
<button ng-bind="but" type="submit">{{getName()}}</button>
</form>
</div>
<script>
var app = angular.module('myApp', []);

app.controller('controller', function($scope) {
    $scope.but="Operation";
    $scope.id=0;
    $scope.country="";
    $scope.name="";
    $scope.getName = function(){
    if($scope.id==0 && $scope.name!=="" && $scope.country!=="")
    {
        return "INSERT";
    }
    if($scope.id!==0 && $scope.name=="" && $scope.country=="")
    {
    return "DELETE";   
    }
    if($scope.id!==0 && $scope.name!=="" && $scope.country!=="")
    {
return "UPDATE";    
    }
}    
});
</script>

3 个答案:

答案 0 :(得分:1)

试试这个:

<input ng-model="vm.input1" name="input1" type="text"/>
<input ng-model="vm.input2" name="input2" type="text"/>
<input ng-model="vm.input3" name="input3" type="text"/>

<button> {{(vm.input1 && vm.input2 && !vm.input3) ? 'Test' : 'Something Else' }} </button>

这些线上的东西会起作用......

jsfiddle:http://jsfiddle.net/0jeantca/3/

希望这会有所帮助......

答案 1 :(得分:1)

var app = angular.module("app",[]);

app.controller("MyCtrl" , function($scope){
  
   $scope.name1 = "Test";
    $scope.name2 = "";
    $scope.name3 = "Test3";
  
  $scope.getName = function(){
      if( $scope.name1 == "" &&  $scope.name2 == "" &  $scope.name3 !== "")
         return "Test";
    return "Other";
    }
    
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
   
      <input type="text" ng-model="name1">
  <input type="text" ng-model="name2">
  <input type="text" ng-model="name3">
  
  <input type="button" name="{{getName()}}" value="{{getName()}}">
       
 
</div>

答案 2 :(得分:0)

名称是指name属性还是显示文本?以下代码适用于两者。

在你的模板中,你可以写

for

在您的控制器中,您可以编写

<button name={{setName()}}>{{setName()}}</button>

警告:每次输入都改变,按钮文字改变,应该没问题。但是,如果您打算更改名称属性,则会对读取您的代码的人造成问题。