【问题标题】:empty form field is still being submitted when using angular form validation使用角度表单验证时仍会提交空表单字段
【发布时间】:2013-12-13 15:37:01
【问题描述】:

验证正确突出显示,但是当我单击提交按钮时,即使表单字段为空,表单仍在提交(并且 nick 值未定义)

我尝试将novalidate 添加到表单中——但这没有帮助。

    <form class="nick" ng-submit="joinChat()">
        <input type="text" required name="nick" ng-model="nick" ng-minlength="2" ng-maxlength="10">
        <button>Join</button>
    </form>

我正在尝试在此处遵循本指南: http://www.ng-newsletter.com/posts/validations.html

joinChat() 函数本身不进行任何验证。据我了解,在使用 Angular 表单验证时,这不是必需的。

    $scope.joinChat = function(){
        socket.emit('chat:join', { nick: $scope.nick });
    };

【问题讨论】:

  • 嗨..如果我在表单中给action=" ",angularjs验证不起作用..你知道任何解决方案吗??
  • 如果您使用的是ng-submit,则不需要action
  • Hii @chovy...谢谢你的回答...但是我又遇到了一个新问题...如果我删除action=" "但没有提交表单,它工作正常。 . 什么问题???

标签: angularjs


【解决方案1】:

无效输入不会阻止 Angular 表单提交,而是试试这个:

<form class="nick" novalidate ng-submit="joinChat()" name="myform">
    <input type="text" ng-required="true" name="nick" ng-model="nick" ng-minlength="2" ng-maxlength="10">
    <button ng-disabled="myform.$invalid">Join</button>
</form>

Fiddle

【讨论】:

  • 表单上的novalidate 有什么作用?
  • 它阻止默认浏览器验证并让角度处理验证
  • 好的,我也有&lt;input name=nick ng-model=user.nick&gt;,但我得到 [Object object] 作为值。我将name 更改为user.nick,但我不知道这是否正确,或者是否需要。
  • 请做小提琴,我看看
  • jsfiddle.net/chovy/hfS4e -- 我只是不知道输入字段上的name 属性应该是什么。
猜你喜欢
  • 2016-07-10
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
  • 2019-06-30
相关资源
最近更新 更多