禁用提交按钮作为默认状态,直到所有输入都填写在angular js中
Disable submit button as default state until all inputs are filled in angular js
我正在尝试禁用提交表单,直到所有字段都被填充。
我尝试在按钮中添加disable
选项,但它不起作用。
这是形式:
<form id="contactForm" name="contactForm" novalidate>
<input type="text" name="contactName" id="contactName" placeholder="Nombre" data-ng-model="cu.contactName" ng-model-options="{ updateOn: 'blur' }" required autofocus>
<span style="color:red" ng-show="contactForm.contactName.$dirty && contactForm.contactName.$invalid">
<span ng-show="contactForm.contactName.$error.required">El nombre es requerido.</span>
</span>
<button class="hvr-bounce-to-right" type="submit" ng-disabled="contactForm.contactName.$dirty && contactForm.contactName.$invalid" name="submit-form" ng-click="cu.sendMail()">Enviar mensaje   <span class="icon flaticon-envelope32"></span></button>
</form>
现在,当我开始打字时,按钮会被禁用,然后删除输入中的所有内容,当我试图点击时,它会被禁用。但我想要的是,按钮从一开始就被禁用,当你填写输入时,它就会被解锁或取消禁用(如果这是一个词的话)。
请帮忙,谢谢!
有角度的文档实际上非常适合表单状态处理:
https://docs.angularjs.org/guide/forms
检查倒数第二个例子,如果电子邮件无效,他们会显示一条消息。
每个输入的每个状态都应该反映在作用域/控制器中。
所以假设你有这个:
$scope.myInputs = {};
您应该将视图中的每个输入建模为:
ng-model = "myInputs.email";
然后,使用ng-flur/ng-change,您应该遍历$scope.myInputs对象中的每个属性,以查看值是否已填充。只有这样,您才能控制提交的禁用。
我可以通过添加以下$pristine
属性来解决此问题:
User has not interacted with the field yet.
所以我的按钮现在看起来是这样的:
<button class="hvr-bounce-to-right" type="submit" ng-disabled="contactForm.contactName.$dirty && contactForm.contactName.$invalid || contactForm.contactName.$pristine" name="submit-form" ng-click="cu.sendMail()">Enviar mensaje   <span class="icon flaticon-envelope32"></span></button>
现在,它从一开始就被禁用,并且只有在用户交互并填充(在本例中)contactName
输入时才启用它自己。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何编写HTML输入的JS内联
- Sails.js:同时发布文本输入和一个文件
- 使用onkeyup JS事件检查输入的值是否唯一
- JS中的按钮和文本输入
- 如何将输入范围的值传递给JS中的变量
- 使用JS从选择和文本输入中捕获值,并将输出返回到HTML
- php&js-将电子邮件添加到输入文本中
- JS事件未更改输入禁用属性
- 在JS的下拉列表中选择多个输入参数
- 轨道:找不到文件“提前输入.js”.直到我删除“数据涡轮链接”
- 提前输入.js - 无法选择建议
- 如何使用 chai 测试多个输入.js断言
- 提前输入.js:页脚查询如何工作
- 从令牌输入.js提交数据
- 提前输入.js远程呼叫限制
- 提前输入.js远程发送之前发送帖子数据问题
- 提前输入.js以在查找建议时忽略括号
- 如何从输入类型=文件获取数据,修改它,然后将其插入到此输入JS中
- 提前输入.js在模糊事件上