angularjs - 选中复选框时清除输入字段

标签 angularjs input checkbox checked

我有一个复选框和两个输入字段。必须选中复选框或必须填写两个输入字段。我正在使用 Angular 进行验证,即 ng-show、ng-required。

当复选框被选中时,两个输入字段被禁用,即 ng-disabled="$parent.vm.selectAllDates"。

现在我还必须清除可能已输入到文本框中的任何数据。

页面加载时未选中该复选框。它在 Controller 中设置如下: vm.selectAllDates = false;

在 Angular 中选中复选框时,是否有某种方法可以清除输入字段?

编辑
我已经使用你的例子添加了我尝试做的事情

复选框:

<input name="dateSelectAll" type="checkbox" 
           ng-model="$parent.vm.selectAllDates" 
           ng-required="vm.selectedReport.Parameters.StartDate == null && vm.selectedReport.Parameters.EndDate == null" />All Available Dates

开始日期输入:
 <input name="beginningDate" type="text" class="form-control form-field" datepicker-popup="dd-MMM-yyyy"
           ng-disabled="$parent.vm.selectAllDates"
           ng-model="$parent.vm.selectedReport.Parameters.StartDate"
           is-open="beginningDateOpened"
           ng-required="$parent.vm.selectAllDates == false"
           ng-change="$parent.vm.selectedReport.Parameters.StartDate = $parent.vm.selectAllDates ? '' : $parent.vm.selectedReport.Parameters.StartDate"
           close-text="Close" />

结束日期:
 <input name="endDate" type="text" class="form-control form-field" datepicker-popup="dd-MMM-yyyy"
           ng-disabled="$parent.vm.selectAllDates"
           ng-model="$parent.vm.selectedReport.Parameters.EndDate"
           is-open="endDateOpened" ng-change="$parent.vm.selectedReport.Parameters.EndDate = $parent.vm.selectAllDates ? '' : $parent.vm.selectedReport.Parameters.EndDate"
           ng-required="$parent.vm.selectAllDates == false && $parent.vm.selectedReport.Parameters.EndDate == null"
           close-text="Close" />

一件非常奇怪的事情是我想看看发生了什么所以我补充说
{{$parent.vm.selectedReport.Parameters.StartDate = $parent.vm.selectAllDates ? '' : $parent.vm.selectedReport.Parameters.StartDate}}  

在 StartDate 输入字段之后。当我选择一个日期时,该日期被添加到输入字段以及输入下方。当我单击复选框时,日期已从输入字段以及输入字段下方删除。所以它奏效了!但是当我从输入字段下删除上面的代码时,它停止工作......我就像什么?

最佳答案

简单的方法是使用 ngChange复选框上的指令,如果复选框被选中,则将文本输入模型设置为空字符串。像这样的东西:

<input type="text" ng-model="data.test" ng-disabled="data.check">

<input type="checkbox" ng-model="data.check" value="one"
            ng-change="data.test = data.check ? '' : data.test">

演示: http://plnkr.co/edit/pKGui2LkP487jP0wOfHf?p=preview

关于angularjs - 选中复选框时清除输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29858231/

相关文章:

javascript - 删除输入字段内的属性

jquery如何设置输入焦点在控件上

c - 如何限制用户在C中输入一位小数点的 float

ruby-on-rails - Rails - 我需要一个复选框来更改数据库中的字段

jquery - 将 css 转换为复选框的 jquery css

angularjs - RestangularProvider 和 RestangularConfigurer 之间的区别

angularjs - Ionic/AngularJS base64 图像不会显示

javascript - angularjs:在ng-switch中从 Controller 更改父范围

angularjs - 如何延长 te 浏览器超时以避免 504 http 错误?

html - 如何在 CSS 中的行内 block 复选框之间创建空间