2017-01-16 9 views
-1

こんにちはjsonデータを使用するフォームがあります。また、フォームは送信時に検証する必要があります。 ラジオボタンが1つのみ選択されたときにラジオボタンが選択される理由がわかりません。 フォームのjsがetherを処理しているかどうかわかりません。 ご迷惑をおかけして申し訳ございません。クリック時にAngularJSラジオボタンを有効にする必要があります

HTML:

<my-form ng-app="CreateApp" ng-controller="mainController"> 

     <form ng-submit="userForm()" name="userForm" novalidate> 
      <fieldset> 
      <div ng-repeat="field in result.fields"> 
       <label for="{{field.type}}">{{field.label}}</label> 

       <input ng-if="field.type != 'radio'" 
        name="{{field.name}}" 
        ng-required="{{field.required}}" 
        value="{{options.value}}" 
        type="{{field.type}}" /> 

       <div ng-if="field.type == 'radio'"> 
       <div ng-repeat="option in field.options"> 

        <input type="{{field.type}}" 
         name="{{field.name}}" 
         ng-required="{{field.required}}" 
         ng-model="richestClub" 
         value="{{option.value}}" />{{option.label}} 
       </div> 
       </div> 

       <form-error ng-show="{{!!field.errorMessages.required}}">{{field.errorMessages.required}}</form-error> 
       <form-error ng-show="{{!!field.errorMessages.invalid}}">{{field.errorMessages.invalid}}</form-error> 
      </div> 
      </fieldset> 

     <button type="submit" 
       ng-disabled="userForm.$invalid" 
       ng-click="onSubmit(userForm)"> Submit </button> 
     </form> 

    </my-form> 

JS:彼らは同じ名前を共有する必要があるため

var myApp=angular.module('CreateApp', []); 

myApp.controller('mainController', function($scope, $http) { 
    $http.get('form.json').success(function(response) { 
    $scope.result = response; 
    console.log($scope.fields); 
    }); 

    $http.get('form.json').success(function(response) { 
    $scope.result = response; 
    var fields = response.fields; 
    $scope.richestClub = fields.answer.options[0].value; 
    console.log($scope.richestClub); 
    console.log($scope.fields); 
    }); 

}); 

Plunker

+0

[OK]をクリックします。確認結果にどのようにアクセスできますか? – user3699998

+0

私は、単一のラジオオプションを選択するためのソリューションを提供しました。あなたは、検証し、あなたの期待が何であるのかを明確にすることができますか? – GPicazo

+0

@GPicazo私のコードがサブプライズで動作することを確認していません – user3699998

答えて

0

ボタンは相互に排他的ではない理由はありますが、JSON文書はdoesnのラジオグループの名前を定義しません。以下のように名前を入力してください( "name": "test")。

{ 
    "fields": { 
     "name": { 
      "type": "text", 
      "required": true, 
      "label": "Name", 
      "errorMessages": { 
       "required": "You need to tell us your name!" 
      } 
     }, 
     "email": { 
      "type": "email", 
      "required": true, 
      "label": "email", 
      "errorMessages": { 
       "required": "You need to tell us your name!", 
       "invalid": "There's a typo in your email" 
      } 
     }, 
     "comment": { 
      "type": "text", 
      "required": false, 
      "label": "Comment", 
      "errorMessages": { 
      } 
     }, 
     "answer": { 
      "type": "radio", 
      "name": "test", 
      "required": true, 
      "label": "What's the richest club?", 
      "options": [ 
       { 
        "label": "A: Chelsea", 
        "value": "Chelsea" 
       }, 
       { 
        "label": "B: Man City", 
        "value": "Man City" 
       }, 
       { 
        "label": "C: Real Madrid", 
        "value": "Real Madrid" 
       }, 
       { 
        "label": "D: Fiorentina", 
        "value": "Fiorentina" 
       } 
      ], 
      "errorMessages": { 
       "required": "Please answer the question" 
      } 
     } 
    } 
} 
+0

私は、これをすべて検証する必要があることをまず知りました。 jsファイルを作成して何かを作成してください。私は嘲笑されたAPIエンドポイントでフォームを送信できます。手伝ってくれる? – user3699998

関連する問題