根据AngularJS的输入更改按钮名称
Changing button name depending on inputs with AngularJS
如何更改按钮名称,这取决于某些输入是否为空示例:如果 input1 和 input2 不为空,但 input3 为空 - 按钮名称将为"Test"。
这是我的代码,但我不起作用
<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>
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>
试试这个:
<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/
希望这有帮助...
名称是指名称属性还是显示文本?下面的代码适用于这两种情况。
在您的模板中,您可以编写
<button name={{setName()}}>{{setName()}}</button>
在您的控制器中,您可以编写
$scope.setName = function()
{
// you can use switch here
var buttonName = "";
if($scope.input1 && $scope.input2 && !$scope.input3)
buttonName = 'Foo';
else
buttonName = 'Bar';
return buttonName;
}
注意:由于每次输入都会更改,按钮文本也会更改,因此应该没问题。但是,如果您打算更改 name 属性,那么,这将给读取您的代码的人带来问题。
相关文章:
- 点击Angularjs中的按钮上传文件
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- 如何使用AngularJS显示按钮或锚标记值
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- 使用AngularJS停用引导导航栏按钮
- 使用Javascript或AngularJS控制或禁用浏览器返回按钮
- jquery fancybox+angularJS:fancybox按钮动作问题
- 如何在angularjs中点击按钮重置模型
- AngularJS中没有选择多个单选按钮
- 在AngularJS中向控制器发送多个随机单选按钮值
- AngularJs:多次点击同一个按钮不起作用
- 如何使用AngularJS禁用按钮
- 当对象中的所有变量都为false时,AngularJs禁用按钮
- 如何在滚动时突出显示菜单按钮 - AngularJs
- 带有按钮angularjs的captcha指令
- 动态创建单选按钮和选定的相应按钮 Angularjs
- 来自单选按钮angularjs的数据绑定
- 如何在没有提交按钮AngularJS的情况下将所有输入设置为$touch
- 检查输入是否为0,如果为0则禁用提交按钮-Angularjs
- 在单选按钮angularjs中选择默认值