AngularJs和HTML5必填字段将字段设置为空
我正在尝试编写一个具有以下功能的小型Angular应用程序: 表单以空开头,带有占位符文本。 用户在所需文本框中输入项目。 角度将项目推送到集合。 将表单输入重置为默认值 我有这样的代码(jsfiddle:): HTML:AngularJs和HTML5必填字段将字段设置为空,html,validation,angularjs,Html,Validation,Angularjs,我正在尝试编写一个具有以下功能的小型Angular应用程序: 表单以空开头,带有占位符文本。 用户在所需文本框中输入项目。 角度将项目推送到集合。 将表单输入重置为默认值 我有这样的代码(jsfiddle:): HTML: 我面临的问题是,当$scope.newVoice=''执行时,表单被呈现为无效,我会得到有用的HTML5验证弹出窗口,以鼓励我正确填写表单。显然这不是我想要的行为-Angular的正确方法是什么?要删除HTML5验证(因为它只在兼容浏览器上工作),为什么不在表单中添加nova
我面临的问题是,当$scope.newVoice=''执行时,表单被呈现为无效,我会得到有用的HTML5验证弹出窗口,以鼓励我正确填写表单。显然这不是我想要的行为-Angular的正确方法是什么?要删除HTML5验证(因为它只在兼容浏览器上工作),为什么不在表单中添加
novalidate
属性
由于属性为“required”,因此表单的有效性仍然无效。Angular的1.1.x分支中的以下pull请求将添加$setPristine方法以允许此情况发生
<div ng-controller="MyCtrl">
<form name="talkForm">
<input ng-model="newVoice" placeholder="Say something" required />
<button ng-click="saySomething()">Say</button>
</form>
<ul>
<li ng-repeat="c in conversation">{{c}}</li>
</ul>
</div>
function MyCtrl($scope) {
$scope.conversation =[];
$scope.saySomething = function(){
if ($scope.talkForm.$valid){
//push to list
$scope.conversation.push($scope.newVoice);
$scope.newVoice='';
}
}
}