Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在输入文本时单选按钮不能保持选中状态_Javascript_Html_Angularjs_Forms - Fatal编程技术网

Javascript 为什么在输入文本时单选按钮不能保持选中状态

Javascript 为什么在输入文本时单选按钮不能保持选中状态,javascript,html,angularjs,forms,Javascript,Html,Angularjs,Forms,在项目中,我需要一个表单来包含单选按钮,并将最后一项作为输入字段。我们正在使用AngularJS 将vm.appModel.amount绑定到输入字段,并使用不同的单选按钮选择:单击提交按钮时使用的数据将有效 但是,如果用户单击文本输入并开始键入,则单选按钮将丢失其选中值,即使在文本输入上进行了许多检查以将选中值设置为true 在无线电输入上,这应保持其激活状态,但不会 见回购协议: 请提供有关如何确保在文本字段中键入时选中单选按钮的任何指导。谢谢。您已将ng模型绑定到vm.appModel.a

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

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

但是,如果用户单击文本输入并开始键入,则单选按钮将丢失其选中值,即使在文本输入上进行了许多检查以将选中值设置为true

在无线电输入上,这应保持其激活状态,但不会

见回购协议:


请提供有关如何确保在文本字段中键入时选中单选按钮的任何指导。谢谢。

您已将ng模型绑定到vm.appModel.amount属性 单选按钮的值为0 仅当vm.appModel.amount属性的值为0时,才会选中该单选按钮 您已将文本框绑定到同一属性,因此当您开始键入时,可以将值更改为0以外的值,因此单选按钮将被取消选中
似乎没有必要使用ng模型将单选按钮绑定到amount属性。只需删除它。

为您创建了一个拉取请求,解决了该问题

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


我已经重构了您的代码,使其包含一个属性为amount和type的payment对象。对于手动付款,现在将设置payment.type,它控制单选按钮,金额存储在payment.amount中。

非常感谢您的澄清@Daniël和jw56578,最后一个单选按钮确实不需要绑定到属性。我的方式和公关有点不同。在我的情况下,类型值是多余的,但它帮助了很多!我将很快调整我的回购协议,以显示更新,以及我从该公关中学到的东西。
ng-focus="isManualInputSelected = true;"
ng-change="isManualInputSelected = true;"
ng-click="isManualInputSelected = true;"
ng-checked="isManualInputSelected"