【问题标题】:Validation of Form in drop down (<select> tag) in Angular JS在 Angular JS 中的下拉列表(<select> 标记)中验证表单
【发布时间】:2015-10-05 13:02:41
【问题描述】:

我正在尝试对具有多个可用下拉菜单的表单进行验证。我曾尝试使用 ng-pattern,但它似乎只适用于输入字段。

现在在选择标记的 ng-change 事件上,我正在尝试手动将表单验证参数设置为 false,例如 $scope...$valid = false 但表单的有效参数仍然为 true,并且我的条件失败.

我也在表单末尾的按钮上调用表单的有效参数检查。

请提出解决方案。

【问题讨论】:

  • 您能通过 Fiddle 或 Plunker 分享您的代码吗?会更有帮助。谢谢。

标签: angularjs forms validation html-select dropdown


【解决方案1】:

也许对你有帮助。我创建了这个指令来验证表单中两个值的相等性。指令检查相等性并将手动验证结果设置为表单。

指令示例:

angular
    .module('app')
    .directive('sameAs', sameAs);

function sameAs() {
    var directive = {
        link: link,
        restrict: 'A',
        require: 'ngModel',
        scope: {
            sameAs: '='
        }
    };
    return directive;

    ////////////

    function link(scope, element, attrs, ctrl) {
        ctrl.$validators.match = function (modelValue, viewValue) {
            return viewValue === scope.sameAs;
        };
    }
}

使用示例:

<form name="testForm">
    <input name="newPassword" type="password"
           ng-model="formData.newPassword">
    <input name="confirmPassword" type="password"
           ng-model="formData.confirmPassword"
           same-as="formData.newPassword">
    <span ng-show="testForm.confirmPassword.$error.match">Passwords is not the same!</span>
</form>

【讨论】:

  • 非常感谢您的回答。但是我有一个下拉集,我想要实现的是,当在下拉列表中选择默认选项“选择”时,我不想导航.
  • 我认为这个线程可能是我想要实现的目标的副本。stackoverflow.com/questions/15437435/…
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 2015-12-06
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
相关资源
最近更新 更多