如果你看一下我的fiddle来自外部控制器的按钮提交表单验证
我不知道为什么内部“提交”按钮会触发浏览器验证(按照required
属性),但“外部按钮'不?
外部按钮调用形式submit()
函数,所以我会期待相同的行为,不是吗?
我知道这可能不是一个角度问题,但我正在寻找一个Angular解决方案,这意味着我不必使用$元素(据我所知这是不好的做法)。
如果你看一下我的fiddle来自外部控制器的按钮提交表单验证
我不知道为什么内部“提交”按钮会触发浏览器验证(按照required
属性),但“外部按钮'不?
外部按钮调用形式submit()
函数,所以我会期待相同的行为,不是吗?
我知道这可能不是一个角度问题,但我正在寻找一个Angular解决方案,这意味着我不必使用$元素(据我所知这是不好的做法)。
内部提交按钮触发所需的行为,因为它的浏览器默认行为。您无法通过使用javascript提交表单来触发required
行为。您必须找到其他方式向用户展示他们应该如何处理表单。您可能需要使用ngForm
附带的$valid
财产。
当您使用$元素时,您会触发纯JavaScript中的事件,并且角度不知道发生了什么,因此无法在此情况下验证表单。你应该触发表单验证第一:
$scope.$broadcast('$validate');
if(!ngForm.$invalid)
$element.find("form")[0].submit();
对于这项工作,请定义与NG-form标签的形式,像这样:
<ng-form> /* BLABLABLA */ </ng-form>
此处了解详情:
http://docs.angularjs.org/api/ng.directive:ngForm
您还可以选择此项:
谢谢。然而,我正在寻找的验证是浏览器内置验证。 –
内部提交按钮触发'required'行为,因为它的浏览器默认行为。您无法通过使用javascript提交表单来触发'required'行为。您必须找到其他方式向用户展示他们应该如何处理表单。您可能想使用'ngForm'附带的'$ valid'属性。 – Daiwei
谢谢。如果您将此添加为答案,我会将其标记为正确。 –
谢谢@ rob-campo – Daiwei