禁用Nativescript Raddataform中的按钮 [英] Disable button in Nativescript Raddataform

查看:74
本文介绍了禁用Nativescript Raddataform中的按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用commitMode ="Immediate",并且尝试在任何输入无效时禁用我的保存按钮. 建议采用什么方法来实现这一目标?

I'm using commitMode="Immediate" and I'm trying to disable my save button when any input is invalid. What is the recommended approach to achieve this?

我了解我只能在组件中使用手动"模式时设置一个变量,但是在使用时我找不到任何能代表最好是完整Raddataform(否则为单个属性)有效性变化的事件.立即验证.

I understand that I can just set a variable when using "manual" mode from my component, but I can't find any event that represents a change in validity of preferably the complete Raddataform (otherwise of a single property) when using Immediate validation.

推荐答案

这是NS-Vue解决方案,但完全适用于Angular.

This is the NS-Vue solution, but totally applicable in Angular.

添加一个@propertyValidated="onValidateForm"事件侦听器,该事件侦听器在每次验证时触发.然后,您可以在表单上使用hasValidationErrors()来查看该表单是否有效.唯一的技巧是必须将其包装在setTimeout()中,如下所示:

Add a @propertyValidated="onValidateForm" event listener that triggers on each validation. Then you can use hasValidationErrors() on the form to see if the form is valid. The only trick is that is has to be wrapped in a setTimeout(), like so:

onValidateForm(event) {
    setTimeout(() => {
        this.validated = !event.object.hasValidationErrors();
        console.log("form valid: " + this.validated);
    }, 100);
}

有关完整解决方案的信息,请参见此游乐场.

For a complete solution, see this playground.

这篇关于禁用Nativescript Raddataform中的按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆