Javascript AngularJS:ng禁用不工作
我正在尝试根据输入类型值禁用启用按钮。下面是AngularJSHTML代码Javascript AngularJS:ng禁用不工作,javascript,angularjs,Javascript,Angularjs,我正在尝试根据输入类型值禁用启用按钮。下面是AngularJSHTML代码 <div ng-app> <form name="myForm" ng-controller="ctrl"> <input type="text" ng-model="name" ng-required="true" /> <span>{{name}}</span> <input type="subm
<div ng-app>
<form name="myForm" ng-controller="ctrl">
<input type="text" ng-model="name" ng-required="true" />
<span>{{name}}</span>
<input type="submit" value="Submit" ng-disabled="myForm.name.$pristine" />
</form>
</div>
但无论如何,按钮都不会被禁用
这是你的电话号码
注意:我只希望在文本框没有任何值时禁用该按钮,反之亦然您需要在输入上使用该按钮和
名称
看到我的小提琴了吗
为您修复了它
您指的是名称
,它作为输入id/名称不存在
<input id="name" name="name" type="text" ng-model="name" ng-required="true" />
在输入中添加'name'属性,这样可以解决问题
<div ng-app>
<form name="form" ng-controller="ctrl">
<input type="text" name="name" ng-model="name" ng-required="true" />
<span>{{name}}</span>
<input type="submit" value="Submit" ng-disabled="form.name.$pristine" />
</form>
</div>
{{name}}
myForm.name
指的是name
属性设置为“name”的第一个控件。因为没有,所以它引用formsname
属性本身,返回“myForm”<代码>“myForm”。$pristine未定义,因此ng disabled=undefined
不起作用
正如前面提到的,您需要将name=“name”
属性添加到它应该引用的控件中
<input type="text" name="name" ng-model="name" ng-required="true" />
更改了您的代码
<div ng-app> <form name="myForm" ng-controller="ctrl">
<input type="text" ng-model="name" ng-required="true" />
<span>{{name}}</span>
<input type="submit" value="Submit" name='myName' ng-model='name' ng-disabled="!myForm.$pristine" /> </form> </div>
{{name}}
(注意否定)
您甚至可以使用“myForm.$invalid”。
ng disabled需要一个bool值/表达式返回bool
换句话说,它读取布尔值。试试这个
<input type="submit" value="Submit" ng-disabled="name==undefined || name==''" />
希望它能帮上忙。…。试试这个,也许会有用
< input type="search" ng-required="true" placeholder="username to find" ng-model="username" />
< input type="submit" value="search" ng-disabled="!username" />
与:
ng-disabled="{{myForm.name.$pristine}}"
*它不工作。*在演示中,无论输入文本是否有值,它似乎都被禁用。当textbox中没有数据时,我试图将其禁用,versaI在submit not input文本框上应用了指令。这只在最初起作用。如果我输入文本并删除,它不会禁用按钮prestine,这意味着控件未被触摸、清空或其他。您可以在html上使用required属性并检查
myForm.name.$error.required
。请参阅开发人员api for form ng disabled=“!name”也能很好地工作。这解决了我的问题,即使每个人都说要删除angular指令中的括号
<div ng-app>
<form name="myForm" ng-controller="ctrl">
<input type="text" ng-model="name" ng-required="true" />
<span>{{name}}</span>
<input type="submit" value="Submit" ng-disabled="{{myForm.name.$pristine}}" />
</form>
ng-disabled="myForm.name.$pristine"
ng-disabled="{{myForm.name.$pristine}}"