2017-04-20 17 views
0

私はこのような基本的な質問に多くの時間を費やしているときに嫌いです。ラジオボタンがチェックされていないのはなぜですか?

私は2つのラジオボタンが付いたページを持っていて、それをクリックすると関連ページに送られるはずです。

DOM:

<form id="question-form4" class="list"> 
     <ion-radio id="question-checkbox1">YES</ion-radio> 
     <ion-radio id="question-checkbox2">NO</ion-radio> 
    </form> 
    <button ng-click="next()" type="submit" class="button button-assertive button-block">NEXT</button> 

コントローラ:

$scope.next = function(){ 

    if(document.getElementById('question-checkbox1').checked = true) { 
    //Male radio button is checked 
    $state.go('photo'); 
}else if(document.getElementById('question-checkbox2').checked = true) { 
    //Female radio button is checked 
    $state.go('prescription'); 
} 
} 

そしてもちろん、私が選ぶものは何でも、それは常にページ "写真" に私を送ります。私はおそらく何が間違っていますか?

+2

'=' vs '=='の問題ですか? –

+0

'document.getElementById( 'question-checkbox1')。checked = true'は毎回trueになるでしょう。 (@ÁlvaroGonzálezが言ったことのために) – tymeJV

+0

こんにちは、それは何も起こらない。 – FrenchyNYC

答えて

1

次のように条件を変更してください。 @Alvirpは言ったように、それは===問題です。

if(document.getElementById('question-checkbox1').checked == true) 

else if(document.getElementById('question-checkbox2').checked == true) 
+0

こんにちは、これを行うには何も起こりません。 – FrenchyNYC

+4

技術的には、 'checked ='がすでにブール型であるため、 '== true'は必要ありません。 – Jan

+0

うまく動作しません。 – FrenchyNYC

1

さてさて、与えられたすべてのソリューションは同じであり、かつ動作していないの後、私は、もっと複雑である「メソッド」を見つけ、私に任意の実際のSENSをしていないが、それは動作します:

<ion-radio ng-model="value.name" value="yes" id="question-checkbox1">YES</ion-radio> 
     <ion-radio ng-model="value.name" value="no" id="question-checkbox2">NO</ion-radio> 

2)アドイン:2つのラジオボタンでng-model追加

1)グラムng-modelの値を持つ外部<p>:コントローラに<p>の値を比較

<p id="final">{{value.name}}</p> 

3):

$scope.next = function(){ 

    if(document.getElementById('final').textContent == "yes") { 
    //Male radio button is checked 
    $state.go('photo'); 
}else if(document.getElementById('final').textContent == "no") { 
    //Female radio button is checked 
    $state.go('prescription'); 
} 
} 

これは私に1時間半かかりました。誰かを助けることを願っています。