我的代码看起来像这样 -
<form name="myForm" ng-submit="!myForm.phone.$isEmpty(this.$viewValue)" action="/my/url" method="get">
<input name="phone">
<button type="submit">submit</button>
</form>
现在即使填写电话号码字段,我也无法提交表格。
但如果我这样编码:
<form name="myForm" ng-submit="!myForm.phone.$isEmpty(myForm.phone.$viewValue)" action="/my/url" method="get">
<input name="phone">
<button type="submit">submit</button>
</form>
现在它完美地运作了。
所以困难在于'这个'。我甚至无法检查这个的上下文,它应该是$ scope.myForm.phone的上下文,但不知何故它不是。有人可以解释一下。
答案 0 :(得分:3)
这不是ng-submit
的用途。 ng-submit
是在提交表单时调用的函数或表达式。这与验证无关。如果您希望确保文字字段在提交之前不为空,则只需添加required
,然后如果它为空myForm.$invalid
将为真。
这是你想要做的事情:
<强> HTML 强>
<form name="myForm" ng-submit="submit(phone)">
<input name="phone" type="text" ng-model="phone.value" required>
<button type="submit" ng-disabled="myForm.$invalid" >submit</button>
</form>
<强>控制器强>
$scope.submit = function(phone){
console.log('phone', phone);
}
$scope.phone = {
value: ''
};
<强>更新强>
您传递到this
的{{1}}是对您的控制器的引用。由于您将ng-submit
属性设置为name
,因此您可以通过myForm
访问表单模型,并通过this.myForm
访问手机模型。因此,如果您想使用this.myForm.phone
验证字段是否为空,则必须使用:
$isEmpty
答案 1 :(得分:2)
ng-submit
用于提供表单IS提交时的处理程序。
您要查找的是submit
ng-disabled
按钮
<form name="myForm" ng-submit="functionInController()" action="/my/url" method="get">
<input name="phone" required>
<button type="submit" ng-disabled="myForm.$invalid">submit</button>
</form>
注意添加到输入的required
指令。这样可以确保此字段对于提交