2017-04-20 110 views
0

我討厭當我花這麼多時間在這樣的基本問題上,看起來很容易在我的腦海中,但只是不工作。爲什麼我的單選按鈕檢測不到檢查?

我有一個頁面有兩個單選按鈕,關於哪一個我點擊它應該把我發送到相關頁面。

的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所說,它是= vs ==問題。

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

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

你好,它不會觸發任何事情。 – FrenchyNYC

+4

從技術上說,你甚至不需要'== true'因爲'checked'已經是一個布爾型 – Jan

+0

是的,它也不工作 – FrenchyNYC

1

好吧,鑑於是相同的,而不是工作的所有解決方案之後,我發現了一個「法」是比較複雜的,沒有做任何真正的SENS給我,但那個作品:

1)在兩個單選按鈕添加ng-model

<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)外接克的外部<p>ng-model的值:

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

3)在控制器中的<p>的值進行比較:

$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'); 
} 
} 

此帶我一小時半。希望它有助於某人。