为什么可以't键入文本输入时,单选按钮保持选中状态

Why can't a radio button stay selected when typing in text input

本文关键字:单选按钮 状态 输入 文本 为什么      更新时间:2023-12-24

在一个项目中,我需要一个包含单选按钮的表单,并将最后一项作为输入字段。我们正在使用AngularJS。

将vm.appModel.amount绑定到输入字段和不同的单选按钮选择将起作用:单击提交按钮时使用的数据将有效。

但是,如果用户单击文本输入并开始键入,则单选按钮将丢失其检查值,即使对文本输入进行了多次检查以将检查值设置为true也是如此。(参见代码)

ng-focus="isManualInputSelected = true;"
ng-change="isManualInputSelected = true;"
ng-click="isManualInputSelected = true;"

在无线电输入上,这应该会使其保持激活状态,但不会。(参见代码)

ng-checked="isManualInputSelected"

参见回购:https://github.com/jansensan/test-angularjs-text-input-in-radio-group

如有任何关于如何确保在文本字段中键入时选中单选按钮的指导,我们将不胜感激。谢谢

为您创建了一个pull请求来修复问题。

https://github.com/jansensan/test-angularjs-text-input-in-radio-group/pull/1

正如jw56578所说,vm.appModel.amount属性通过在输入中添加一个值而被覆盖,这意味着单选按钮不再被选中。

我重构了您的代码,使其包含一个具有属性amount和类型的支付对象。对于手动支付,现在将设置.type(这控制单选按钮),并且金额存储在payment.amount.

您已经将ng模型绑定到vm.appModel.amount属性单选按钮的值为0只有当vm.appModel.amount属性的值为0时,才会选中单选按钮您已将文本框绑定到同一属性,因此当您开始键入时,会将值更改为0以外的值,因此单选按钮将取消选中用ng模型将单选按钮绑定到amount属性似乎没有意义。把它取下来。