Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >角2形式-当ngModel =空obj时禁用提交

角2形式-当ngModel =空obj时禁用提交
EN

Stack Overflow用户
提问于 2016-12-12 11:34:11
回答 1查看 2.2K关注 0票数 2

我有一个用for循环动态创建的Angular2表单。对于这个问题,我关心的是我形式上的单选按钮。表单是在HTML中创建的,然后从TS中将每个输入的ngModel分配给一个空对象。我希望禁用表单中的submit按钮,直到选择单选按钮为止:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form (ngSubmit)="onNext(f)" #f="ngForm">

<div class="multi-choice-question-div radio-btn-div question_div" 
    *ngIf="question?.type === 'multi-choice' && !question?.isYesOrNo">
    <div *ngFor="let answer of question?.answerDetails">
        <input
            type="radio" 
            class="display-none" 
            id="{{ answer?.answerId }}"
            [(ngModel)]="ngModelObj['question_' + question.questionId]"
            name="answerForQustion{{ question?.questionId }}"
            [value]="answer"
            required>
        <label class="col-md-12 col-sm-12 multi-choice-label" for="{{ answer?.answerId }}">
            <p class="q-text">{{ answer?.value }}</p>
        </label>
    </div>
</div>

<button class="btn btn-next"
    type="submit"
    *ngIf="currentSectionIndex < sectionsArr.length - 1"
    [disabled]="!f.valid">
        NEXT
</button>

</form>

即使客户端没有选择单选按钮,表单也认为它是有效的,我认为这是因为对于无线电输入的ngModel设置为= {}

如何保持相同的设置(因为它深深地刻在组件的前端和后端),但当ngModel = {}时使表单无效

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 11:56:30

有两种方法,调用一个函数来检查该值是否为空(可能代价高昂,可能过于复杂):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[disabled]="f.invalid || isEmpty(f.value)"

isEmpty(formValue) {
  let x = JSON.parse(JSON.stringify(formValue));
  return Object.getOwnPropertyNames(x).length === 0;
}

字符串化和解析一起删除了所有未定义的键(继续,console.log(formValue)并查看那些未定义的键!)

或者,您可以检查dirty的表单,该表单指示:

脏:如果用户更改了UI中的值,则布尔控件是脏的。 注意,对控件值的编程更改不会将其标记为脏。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[disabled]="!f.valid || !f.dirty"

https://angular.io/docs/ts/latest/api/forms/index/AbstractControl-class.html#!#dirty-anchor

柱塞演示:http://plnkr.co/edit/14yQk2QKgBFGLMBJYFgf?p=preview

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41108205

复制
相关文章
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5070
Collectors.toMap 当value为空时,报空指针
import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors;
botkenni
2022/11/12
3.1K0
Collectors.toMap 当value为空时,报空指针
提交表单时input字段非空验证
需求,当提交表单的时候,如果要验证的字段为空,则弹出提示框提示请完善表单信息,并且 return;不执行下一步。
王小婷
2019/08/07
3K0
还只会 null != obj 判空,10招让你彻底告别空指针异常!
NPE异常相信 Java 程序员都很熟悉,是 NullPointerException 的缩写;最近业务需求开发的有点着急,测试环境就时不时的来个NPE异常,特别的头疼;作为出镜率最高的异常之一,一旦入行 Java 开发,可以说它将伴随着你整个职业生涯;不管是新手小白、还是老司机,对NPE异常那是又“爱”又狠,爱的主要原因是处理起来简单,恨当然是一个不小心就会踩坑;为了提高代码的质量,NPE异常是必须要消灭掉的;
一行Java
2023/09/04
9480
还只会 null != obj 判空,10招让你彻底告别空指针异常!
Angular 从入坑到挖坑 - 表单控件概览
angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验。
程序员宇说
2020/03/19
18.9K0
AngularDart4.0 指南- 表单 顶
表单是商业应用程序的主流。您可以使用表单登录,提交帮助请求,下订单,预订航班,安排会议,并执行无数其他数据录入任务。
南郭先生
2018/08/14
17.5K0
AngularDart4.0 指南- 表单
                                                    顶
Angular核心概念:数据绑定
测试:在NG表达式可以执行哪些代码?(Y表示可以,N表示不可以) 算术运算:Y。比较运算:Y。逻辑运算:Y。三目运算:Y。 调用函数:Y。创建对象:N。JSON序列化:N。 NG表达式禁止出现new关键字。NG表达式中JSON是undefined。 结果展示:
用户9857551
2022/06/28
3.6K0
Angular核心概念:数据绑定
spark提交任务,参数的形式是JSON
spark提交任务,参数的形式是JSON 比如:spark2-submit --class com.iflytek.test.Jcseg_HiveDemo  spark_hive.jar  {"tab
用户1171305
2017/12/28
1.5K0
Angular 从入坑到挖坑 - 组件食用指南
angular 入坑记录的笔记第二篇,介绍组件中的相关概念,以及如何在 angular 中通过使用组件来完成系统功能的实现
程序员宇说
2020/02/25
15.8K0
Angular 从入坑到挖坑 - 组件食用指南
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
刀刀老高
2018/07/24
3600
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
机器之心
2018/07/26
3760
yii2种ajax提交数据时校验出问题
记一次yii2种ajax提交数据时校验出问题,直接跳过addError,报错语不现实‘不存在!’
botkenni
2019/09/02
5650
yii2种ajax提交数据时校验出问题
还在用 if(obj!=null) 做非空判断?带你快速上手 Optional 实战性理解!
相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来尽量简化代码同时高效处理NPE(Null Pointer Exception 空指针异常)
JAVA葵花宝典
2020/06/04
8.3K0
AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除[通俗易懂]
我们来看其中一个标签,<edit>,这里呢,我们用ng-Model来绑定employee这个对象。
全栈程序员站长
2022/09/15
4.8K0
AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除[通俗易懂]
当浏览器全面禁用三方 Cookie
苹果公司前不久对 Safari 浏览器进行一次重大更新,这次更新完全禁用了第三方 Cookie,这意味着,默认情况下,各大广告商或网站将无法对你的个人隐私进行追踪。而微软和 Mozilla 等也纷纷采取了措施禁用第三方 Cookie,但是由于这些浏览器市场份额较小,并没有给市场带来巨大的冲击。
ConardLi
2020/04/17
2.7K0
当浏览器全面禁用三方 Cookie
还在用if(obj!=null)做非空判断?带你快速上手Optional实战性理解!
公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。
java进阶架构师
2020/11/03
8140
还在用if(obj!=null)做非空判断?带你快速上手Optional实战性理解!
Git提交时过滤某些文件
4.这个文件处理好以后,如果感觉没有作用,说明你在创建这个文件之前就已经add过了,这时执行
Arno
2019/12/06
2.9K0
Git提交时过滤某些文件
Angular6自定义表单控件方式集成Editormd
曾经找到过“Editor.md”,看之心喜,一直想在Angular中集成下这款markdownpad编辑器玩,在网上也只找到一篇通过指令集成的,虽然可以实现,但还是希望能做成组件形式的,之后看到一篇自定义组件的文章,了解到ControlValueAccessor才真正完成这个心愿,现在记录分享与诸公。
WindCoder
2018/09/19
5.2K0
Angular6自定义表单控件方式集成Editormd
nvl,空时的推断和取值
  Oracle/PLSQL中的一个函数。   格式为:   NVL( string1, replace_with)   功能:假设string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,假设两个參数的都为NULL ,则返回NULL。   注意事项:string1和replace_with必须为同一数据类型,除非显示的使用TO_CHAR函数。   例:NVL(TO_CHAR(numeric_column), ‘some string’) 当中numeric_column代指某个数字类型的值。   例:nvl(yanlei777,0) > 0   NVL(yanlei777, 0) 的意思是 假设 yanlei777 是NULL, 则取 0值   通过查询获得某个字段的合计值,假设这个值为null将给出一个预设的默认值   比如:   select nvl(sum(t.dwxhl),1)   from tb_jhde t   就表示假设sum(t.dwxhl) = NULL 就返回 1   还有一个有关的实用方法   declare i integer   select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1这样就能够把获得的合计值存储到变量   i中,假设查询的值为null就把它的值设置为默认的1   orcale中:   select nvl(rulescore,0) from zwjc_graderule where rulecode=’FWTD’;   假设记录中不存在rulecode =’FWTD’的数据.则查不出数据.   select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode=’FWTD’;会报查不到数据的错   select nvl(sum(rulescore),0) from zwjc_graderule where rulecode=’FWTD’;   假设记录中不存在rulecode =’FWTD’的数据.还是能够得到一行列名为nvl(rulescore,0),值为0的数据.   select nvl(sum(rulescore),0) into rule_score from zwjc_graderule where rulecode=’FWTD’; 不会报错
全栈程序员站长
2022/07/12
7100
当仓库不为空、从gitee远程仓库拉取
1.从gitee远程仓库拉取
2020/10/23
1.1K0
当仓库不为空、从gitee远程仓库拉取

相似问题

当使用ngmodel时,角4输入形式设置为空。

13

角2 ngModel形式知道新的选择

12

当输入为空时禁用提交

24

当输入在角2中为空时禁用按钮

23

角2形式数据空

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文