Angularjs 名称为'';在窗体中不可聚焦

Angularjs 名称为'';在窗体中不可聚焦,angularjs,Angularjs,我在Stackoverflow尝试了很多答案,但没有一个有效: <form ng-submit="runIt(cars)"> <input type="radio" ng-model="cars.erp" value="Toyota" ng-required="!cars.erp">Toyota <br> <input type="radio" ng-model="cars.erp" value="Nissan" ng-requi

我在Stackoverflow尝试了很多答案,但没有一个有效:

<form ng-submit="runIt(cars)">
    <input type="radio" ng-model="cars.erp" value="Toyota" ng-required="!cars.erp">Toyota
    <br>
    <input type="radio" ng-model="cars.erp" value="Nissan" ng-required="!cars.erp">Nissan
    <br>
    <input type="radio" ng-model="cars.erp" value="Honda" ng-required="!cars.erp">Honda
    <br>
    <input type="radio" ng-model="cars.erp" value="Other" ng-required="!cars.erp">Other
    <input type="text" ng-model="cars.other" ng-show="cars.erp=='Other'" ng-required="!cars.other">
    <br>
    <input type="submit">
</form>

丰田

日产
本田
其他
只有在
Other
中键入一个值后,它才开始工作。显然,这是由于隐藏的输入,但这是它应该如何工作的:

  • 必须提交一个值
  • 如果选择了“其他”,则必须键入值
这是小提琴:

复制:

  • 选择丰田
  • 单击提交
  • 请参见检查中的控制台

您的文本字段的
ng model
cars.other
,然后您正在检查
ng required=“!cars.other”
是否不正确。您需要文本字段本身。相反,它应该取决于单选按钮的值。类似于
ng required=“cars.erp=='Other'”


我已经在这里更新了JSFIDLE->。希望这有帮助

您的文本字段的
ng model
cars.other
,然后您正在检查
ng required=“!cars.other”
是否不正确。您需要文本字段本身。相反,它应该取决于单选按钮的值。类似于
ng required=“cars.erp=='Other'”


我已经在这里更新了JSFIDLE->。希望这有帮助

出现“名称为“”的无效表单控件不可聚焦”的特定错误的原因是浏览器希望聚焦于所需的表单元素(文本输入),但该元素不可见


您的意思是,只有当cars.other的计算结果为false时,才需要文本字段。换句话说,您是说文本字段在未填写时是必需的。如果cars.erp设置为other,则实际需要的是文本字段


出现“名称为“”的无效表单控件不可聚焦”的特定错误的原因是浏览器希望聚焦于所需的表单元素(文本输入),但该元素不可见


您的意思是,只有当cars.other的计算结果为false时,才需要文本字段。换句话说,您是说文本字段在未填写时是必需的。如果cars.erp设置为other,则实际需要的是文本字段


您使用的浏览器是什么?在ChromeChrome@riqitang中,它似乎对我很好。您使用的浏览器是什么?在ChromeChrome@riqitang中对我来说似乎很好