【问题标题】:How to make input text disabled until edit button is clicked in AngularJS?如何在AngularJS中单击编辑按钮之前禁用输入文本?
【发布时间】:2017-09-16 10:56:25
【问题描述】:

我创建了一个编辑按钮和一个表单。我无法禁用我的输入 直到点击编辑按钮。
我要做的就是禁用输入,当用户单击编辑按钮时,他们应该能够编辑文本。

这是我的代码:

<div ng-controller="MyCtrl">
    <a class="edit" ng-click="inactive = !inactive">Edit</a>

    <form>
        <b>First Name:</b>
        <input type="text" ng-disabled="inactive" ng-model="input1" value="John">
        <br>
        <b>Last Name:</b>
        <input type="text" ng-disabled="inactive" value="Smith">
        <br>
        <b>Email:</b>
        <input type="email" ng-disabled="inactive" value="jsmith@email.com">
    </form>
</div> 

App.js

function MyCtrl($scope) {
    $scope.inactive = false;
} 

【问题讨论】:

  • 您的代码应该如图所示工作。您检查浏览器控制台是否有错误?

标签: angularjs angularjs-ng-disabled


【解决方案1】:

您可以添加 ng-click="changeStatus()" 在你的角度模板中。

完整代码:

var app = angular.module("Portal", ['ngRoute']);
app.controller('MyCtrl', ['$scope', function($scope) {
   $scope.inactive = true;
   $scope.changeStatus = function() {
      $scope.inactive = !$scope.inactive;
   };
}]);

【讨论】:

  • 我应该删除 $scope.inactive = false 吗?
  • 不,$scope.inactive = false 给出了初始化状态。
  • 我是否应该为我的按钮这样做:'编辑'
  • 是的。你明白了。
  • 但是,它现在只是给我一个空白页。
【解决方案2】:

要修复您的代码,您必须反转您的布尔变量:

function MyCtrl($scope) {
    $scope.inactive = true;
}

但要以更简洁的方式禁用整个表单输入,请将所有输入放在带有 ng-disabled 的字段集中,并从每个输入中删除 ng-disabled...

<form> 
    <fieldset ng-disabled="inactive">
        <b>First Name:</b>
        <input type="text" ng-model="name"><br>
        <b>Last Name:</b>
        <input type="text" ng-model="lastname"><br>
        <b>Email:</b>
        <input type="email" ng-model="email">
    </fieldset>
</form>

【讨论】:

  • 谢谢。还有,最后一个问题。你知道当用户点击编辑按钮时会自动将该编辑按钮显示为“提交”按钮吗?
  • 我不完全明白你想做什么。您想在表单启用时显示提交按钮并在禁用时隐藏它?不是吗? ...但是,您是plunker...尝试更新它并告诉我您想要做什么。
  • 基本上,我想做的是,假设表单被禁用,当您单击编辑按钮时,它将启用表单进行编辑。您单击的那个编辑按钮“我想在编辑模式下将其切换为提交按钮
  • 为此,您必须使用ng-show/ng-hide。再次检查plunker
  • 你知道如何保存()表单吗?当用户编辑表单并点击保存并重新加载页面时,我希望显示更新的版本。
猜你喜欢
  • 1970-01-01
  • 2015-06-20
  • 2022-01-22
  • 1970-01-01
  • 2021-10-20
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
相关资源
最近更新 更多