Javascript 角度-多步形式

Javascript 角度-多步形式,javascript,angularjs,Javascript,Angularjs,我对angular js有一个问题 我的问题是: 我有一个包含输入的多步骤表单,还有一个选择字段,通过选择值显示按钮,我可以添加其他输入字段。我使用ng disabled=“userForm.$invalid”,但问题是他在其他表单步骤中捕获所有其他输入。如何验证 提前谢谢,对不起我的英语 app.js var validationApp = angular.module('validationApp', []).config(function ($interpolateProvider) {

我对angular js有一个问题

我的问题是: 我有一个包含输入的多步骤表单,还有一个选择字段,通过选择值显示按钮,我可以添加其他输入字段。我使用ng disabled=“userForm.$invalid”,但问题是他在其他表单步骤中捕获所有其他输入。如何验证

提前谢谢,对不起我的英语

app.js

 var validationApp = angular.module('validationApp', []).config(function ($interpolateProvider) {
    $interpolateProvider.startSymbol('<%').endSymbol('%>');
});

validationApp.controller('mainController', function ($scope, $compile) {
    $scope.log = function () {
        console.log($scope.userForm);
    };
    /*
     * If is selected partnership will show button for adding partners.
     */
    $(".category").click(function () {
        var value = $(".category option:selected").val();
        var token = $('.csrf').val();
        var solo = 1;
        var partnership = 2;

        if (value == solo || value == '') {
            $('.partner-button').hide();
            $('.inputs').remove();
        } else if (value == partnership) {
            $('.partner-button').show();
            //$(".input_fields_wrap").append(fields);
            //$compile(fields)($scope);
        }
    });

    /*
     * Adding fields for partner.
     */

    var count = 0;
    $('.add_field_button').click(function (e) {

        e.preventDefault();
        var input = $("<div class=\"inputs\">" +
            "<input type=\"text\" ng-model=\"partnerName" + count + "\" name=\"partners[" + count + "][name]\" placeholder=\"Наименование на партньор\" required/>" +
            "<p ng-show=\"userForm['partners[" + count + "][name]'].$error.required\" class=\"errors\">Наименованието на партньора е задалжително</p>" +
            "<input type=\"text\" ng-model=\"partnerUrn" + count + "\" name=\"partners[" + count + "][urn]\" placeholder=\"БУЛСТАТ (ЕИК) на партньора\" required>" +
            "<p ng-show=\"userForm['partners[" + count + "][urn]'].$error.required\" class=\"errors\">Полето БУЛСТАТ е задалжително</p>" +
            "<br><a href=\"#\" class=\"font remove_field\">Премахни</a>" +
            "</div>");
        count++;
        $(".input_fields_wrap").append(input);
        $compile(input)($scope);


    });

    $('.input_fields_wrap').on("click", ".remove_field", function (e) { //user click on remove text
        e.preventDefault();
        $(this).parent('div').remove();
        count--;
    });
});
var validationApp=angular.module('validationApp',[]).config(函数($interpolateProvider){
$interpolateProvider.startSymbol(“”);
});
validationApp.controller('mainController',函数($scope,$compile){
$scope.log=函数(){
log($scope.userForm);
};
/*
*如果选择“合作伙伴关系”,则会显示用于添加合作伙伴的按钮。
*/
$(“.category”)。单击(函数(){
var值=$(“.category选项:选中”).val();
var-token=$('.csrf').val();
var-solo=1;
var=2;
如果(值==solo | |值==''){
$('.partner button').hide();
$('.inputs').remove();
}else if(值==合作关系){
$('.partner button').show();
//$(“.input\u fields\u wrap”).append(fields);
//$compile(字段)($scope);
}
});
/*
*为合作伙伴添加字段。
*/
var计数=0;
$('.add_field_button')。单击(函数(e){
e、 预防默认值();
变量输入=$(“”+
"" +
“

+ "" + “

+ “
”+ ""); 计数++; $(“.input\u fields\u wrap”).append(input); $compile(input)($scope); }); $('.input_fields_wrap')。在(“单击“,”.remove_field”)上,函数(e){//用户单击remove text e、 预防默认值(); $(this.parent('div').remove(); 计数--; }); });

HTML表单第一步

<fieldset>
<h2 class="fs-title">ПРОВЕРКА НА КАНДИДАТ</h2>

<div class="application-type">
    <h2 class="fs-title">Тип на кандидатстване: </h2>
    <select
            name="category"
            class="category"
            ng-model="category"
            required
            >
        <option value="">Изберете тип на кандидатстване</option>
        <option value="1">Самостоятелно</option>
        <option value="2">В партньорство</option>
    </select>

    <p ng-show="userForm.category.$error.required" class="errors">Моля изберете тип на кандидатстване</p>
</div>
<p>
    <input type="text"
           name="urn"
           placeholder="БУЛСТАТ(ЕИК)"
           ng-model="urn"
           ng-minlength="9"
           ng-maxlength="13"
           required
           ng-class="{ 'has-error' : userForm.urn.$invalid && !userForm.urn.$pristine }"/>

<p ng-show="userForm.urn.$error.required" class="errors">Полето БУЛСТАТ е задалжително</p>

<p ng-show="userForm.urn.$error.minlength" class="errors">Невалиден БУЛСТАТ</p>

<p ng-show="userForm.urn.$error.maxlength" class="errors">Невалиден БУЛСТАТ</p>
</p>



<div class="input_fields_wrap"></div>
<button class="partner-button action-button add_field_button">Добави партньор</button>

<input type="button" name="next" class="next action-button" ng-disabled="userForm.$invalid" value="Напред"/>

<div class="g-recaptcha" data-sitekey="6LfUWRkTAAAAABPcgj4QN-LZzrmv4ZvGDqNGInxN"></div>

ПРОВЕРКА НА КАНДИДАТ
Тип на кандидатстване: 
Изберете тип на кандидатстване
Самостоятелно
В партньорство

Добави партньор

您可以使用的“别名”(如果您不考虑这一点)将步骤分组在一起

这样,每个具有定义名称的ngForm,就像form,将获得自己的表单控制器,从而允许您使用
ng disabled=“firstStep.$invalid”
ng disabled=“secondStep.$invalid”