AngularJs Radiobox组验证

时间:2014-09-17 09:36:00

标签: javascript angularjs validation angularjs-directive

Angularjs是否有一种简单的方法来验证已在额外指令中实例化的无线电组?

验证要求:除非点击了其中一个放射线管,否则用户无法提交。

以下是我如何构建它:

HTML文档:

<ng-form name="salutationgroup">
      <radiotrigger model="mrms" name="gender" value='1' label="mr" ></radiotrigger>
      <radiotrigger model="mrms" name="gender" value='2' label="ms" ></radiotrigger>
</ng-form>

JS文件:

Directives.directive('radiotrigger', function() {
    return {
        restrict: 'E',
        scope: {},
        compile: function(element, attrs) {
            var templateText = '<li><label><input type="radio" ng-model="' + 
                    attrs.model + '" value="' + 
                    attrs.value + '">' +
                    attrs.label + '</label></li>';

            element.replaceWith(templateText);
        }
    };
});

非常感谢您的支持。

1 个答案:

答案 0 :(得分:1)

一种方法:

HTML

<ng-form name="salutationgroup">
    <radiotrigger model="mrms" name="gender" value='1' label="mr"></radiotrigger>
    <radiotrigger model="mrms" name="gender" value='2' label="ms"></radiotrigger>
    <input type="submit" ng-disabled="!enabled"></input>
</ng-form>

指令(观察'ng-change =“enabled = true”'):

Directives.directive('radiotrigger', function() {
    return {
    restrict: 'E',
    scope: {},
    compile: function(element, attrs) {
        var templateText = '<li><label><input type="radio" ng-model="' + 
                attrs.model + '" value="' + 
                attrs.value + '" ng-change="enabled=true">' +
                attrs.label + '</label></li>';

        element.replaceWith(templateText);
    }
};