Angular-表单动态添加删除
angular本身不允许去操作DOM,在angular的角度来说,所有操作都以数据为核心,剩下的事情由angular来完成。所以说,想清楚问题的根源,解决起来也不是那么困难。
前提
那么,要做的这个添加删除要具有以下功能:
1、当数据只剩一条时,不允许删除;
2、第一条数据不允许修改和删除;
3、可以动态设置添加最大条数(例中设置为4条)。
首先,用bootstrap布局一个可以添加和删除的操作界面:
<body ng-app="App">
<form class="form-horizontal" ng-controller="index">
<label class="col-sm-2 control-label">绑定域名:</label>
<div class="col-sm-10">
<div ng-repeat="domain in info.operate">
<div class="form-group">
<label class="control-label col-sm-1" for="domain{{$index + 1}}">域名{{$index + 1}}</label>
<div class="col-sm-9">
<input type="text"
id="domain{{$index + 1}}"
class="form-control"
ng-model="domain.value"
name="domain{{$index + 1}}"
ng-disabled="!$index" />
</div>
<div class="col-sm-2">
<button class="btn btn-default"
type="button"
ng-disabled="info.operate.length >= 4"
ng-click="info.add($index)">+</button>
<button class="btn btn-default"
type="button"
ng-click="info.delete($index)"
ng-show="$index">-</button>
</div>
</div>
</div>
</div>
<div class="col-sm-offset-3"><button type="button" class="btn btn-primary" ng-click="info.result()">结果</button></div>
</form>
</body>
然后,需要的是用angular操作数据完成以上功能:
var app = angular.module('App', []);
app.controller('index', function($scope, $log) {
$scope.info = {};
$scope.info.operate = [];
// 假设这是数据来源
var simp = ["www.baidu.com"];
angular.forEach(simp, function(data, index) {
$scope.info.operate.push({key: index, value: data});
});
// 增加
$scope.info.add = function($index) {
$scope.info.operate.splice($index + 1, 0, {key: $index + 1, value: ""});
};
// 删除
$scope.info.delete = function($index) {
$scope.info.operate.splice($index, 1);
};
// 结果
$scope.info.result = function() {
var result = [];
angular.forEach($scope.info.operate, function(data) {
result.push(data.value);
});
$log.debug(result);
};
});
至此,功能编写完毕,具体效果如图:


当然,这只是一个简单的输入例子,并没有做诸如输入框必填等功能。
Angular-表单动态添加删除的更多相关文章
- js表单动态添加数据并提交
情景1:已经存在form对象了,动态为form增加对象并提交 function formAppendSubmit(){ var myform=$('#newArticleForm'); //得到for ...
- jQuery实现表单动态添加与删除数据操作示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- 简单的jquery表单验证+添加+删除+全选/反选
//布局 <body> <h4><a href="#">首页</a>><a href="#"> ...
- Angular 表单嵌套、动态表单
说明: 组件使用了ng-zorro (https://ng.ant.design/docs/introduce/zh) 第一类:嵌套表单 1. 静态表单嵌套 demo.component.html & ...
- Jquery实现表单动态加减、ajax表单提交
一直在搞Java后台开发,记得刚工作那一两年时间搞过前后端交互开发,用的东西也是五花八门,当时觉得做页面展示给别人看,是很有成就的事情,不过现在感觉自己跟纯前端开发比起来弱爆了,不过如果你的目标是作为 ...
- 深入了解Element Form表单动态验证问题 转载
随风丶逆风 2020-04-03 15:36:41 2208 收藏 3 分类专栏: Vue 随笔 文章标签: 动态验证 el-form elementUI 表单验证 版权 在上一篇<vue ...
- angular.js ng-repeat动态插入删除dom节点
既然上面提到 angular.js 下无需用户直接操作dom ,而是在编译间断 dom 与 控制层model 实现了双向绑定,一方做出改变,另一方就会立即改变,那问题来了,我想插入一个文本框和按钮,并 ...
- Angular 表单验证类库 ngx-validator 1.0 正式发布
背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...
- Angular表单 (一)表单简介
Angular 表单 angular提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单.二者都从视图中捕获用户输入事件.验证用户输入.创建表单模型.修改数据模型,并提供跟踪这些更改的 ...
随机推荐
- Angularjs 脏值检测
文章转自:http://www.ituring.com.cn/article/39865 构建自己的AngularJS,第一部分:Scope和Digest 原文链接:http://teropa.inf ...
- 从jquery里的$.ajax()到angularjs的$http
jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下 ...
- SQL创建字段信息(表值函数)
ALTER FUNCTION [dbo].[fnt_SplitString] ( @p1 varchar(Max), ) ) RETURNS @Table_Var TABLE ( c1 varchar ...
- js延迟3秒后跳转
setTimeout("location.href='onlineUser/login'",3000);
- JS面试题-算法台阶问题
有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后 ...
- Java的几种常用设计模式
何为设计模式? 就是对一些常见问题进行归纳总结,并针对具体问题给出一套通用的解决办法(强调的是解决问题的思想): 在开发中,只要遇到这类问题,就可以直接使用这些设计模式解决问题. ---------- ...
- SpringBoot实战配置
http://blog.csdn.net/sun_t89/article/details/51944252 http://www.cnblogs.com/kreo/p/4423362.html
- 圣诞老人去哪?Power BI告诉你
随着圣诞节的来临,微软的Power BI团队使用Power BI来回答大家一直以来所关心的问题:圣诞老人去哪? 要回答这个问题,来自社交网络的数据是最合适不过的了.于是Power BI团队用以下关键字 ...
- 3D场景定位的一些资源
利用多张影像对小物体进行拍摄,进而进行三维重建,是计算机视觉中的重要问题之一. 目前对此研究最全面的网站是:http://vision.middlebury.edu/mview/eval/ 目前最优秀 ...
- SeekBar进度条简单案例
SeekBar是进度条.我们使用进度条时,可以使用系统默认的进度条:也可以自定义进度条的图片和滑块图片等 向右拉进度条让图片显示出来 向右拉五角星加载有色进度条 baseSeekBar package ...