0

my code looks like this:

 <ng-form name="form">

    <div>
        Question 1
        <label>
            <input type="radio" ng-model="q1" style="visibility: initial; position: relative;"
                   ng-value="false">
               No
        </label>

        <label>
            <input type="radio" ng-model="q1" style="visibility: initial; position: relative;"
                   ng-value="true" ng-required="!(q1||q2||q3)">
                Yes
        </label>

    </div>

    <div  ng-show="!q1">
        Question 2 
        <br/>
        <label>
            <input type="radio" ng-model="q2" style="visibility: initial; position: relative;"
                   ng-value="false">
            No            </label>
        <br/>
        <label>
            <input type="radio" ng-model="q2" style="visibility: initial; position: relative;"
                   ng-value="true" ng-required="!(q1|| q2|| q3)">
                Yes            </label>
        <br/>
    </div>

    <div ng-show="!q1 && !q2">
       Question 3
        <br/>
        <label>
            <input type="radio" ng-model="q3" style="visibility: initial; position: relative;"
                   ng-value="false">
                No
        </label>
        <br/>
        <label>
            <input type="radio" ng-model="q3" style="visibility: initial; position: relative;"
                   ng-value="true" ng-required="!(q1|| q2|| q3)">
                Yes
        </label>
        <br/>

    </div>

    </ng-form>

So, I need one (and only one) "Yes" answer for questions. However, $form.invalid is always false. I see that 'required="required"' is successfully added to input fields when it should be added, so ng-required condition works ok ;).

http://jsfiddle.net/ahL58/134/

Bleble
  • 1
  • 1

1 Answers1

1

Give names to radio inputs by group. Otherwise form will can not check validation

Burak Akyıldız
  • 1,550
  • 15
  • 25