2017-12-27 358 views
2

我從下一步按鈕中刪除禁用的類,當兩個單選按鈕都被選中時,它工作正常,但問題是當我重新加載頁面時,兩個單選按鈕仍然被檢查但下一步中的禁用類不會觸發。無論如何,它使工作onload?jQuery檢測是否在加載時選擇了單選按鈕

<input class="SelectMarital" id="marital1" type="radio" name="marital" value="1"/> 
<input class="SelectMarital" id="marital2" type="radio" name="marital" value="2"/> 

<input class="SelectPrice" id="price1" type="radio" name="price" value="1"/> 
<input class="SelectPrice" id="price2" type="radio" name="price" value="2"/> 

<a href="#" id="salary" class="btn disabled">Next Step</a> 

$("input[type=radio]").change(function(){ 
    if($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { 
     $("#salary").removeClass('disabled'); 
    }else { 
     $("#salary").addClass('disabled'); 
    } 
}); 

任何人都可以幫忙嗎?

+0

使用PHP我是將其中一個單選按鈕設置爲選中狀態。 – Zain

回答

1

你可以定義檢查函數然後調用它在就緒功能,並且還當你連接喜歡你change事件:

$(function(){ 
    //First call for the load 
    checkRadioButtons(); 

    //Second call for change event 
    $("input[type=radio]").change(checkRadioButtons); 
}); 

$(function() { 
 
    checkRadioButtons(); 
 
    $("input[type=radio]").change(checkRadioButtons); 
 
}); 
 

 
var checkRadioButtons = function() { 
 
    if ($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { 
 
    $("#salary").removeClass('disabled'); 
 
    } else { 
 
    $("#salary").addClass('disabled'); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input class="SelectMarital" id="marital1" type="radio" name="marital" value="1" checked/> Marital 1 
 
<input class="SelectMarital" id="marital1" type="radio" name="marital" value="2" /> Marital 2 
 
<br> 
 
<input class="SelectPrice" id="price1" type="radio" name="price" value="1" checked/> Price 1 
 
<input class="SelectPrice" id="price2" type="radio" name="price" value="2" /> Price 2 
 
<br><br> 
 
<a href="#" id="salary" class="btn disabled">Next Step</a>

1

只是觸發您change處理您的頁面完成後的.trigger()功能加載:

$("input[type=radio]").change(function() { 
 
    if ($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { 
 
    $("#salary").removeClass('disabled'); 
 
    } else { 
 
    $("#salary").addClass('disabled'); 
 
    } 
 
}); 
 

 
$(function(){ 
 
    $("input[type=radio]").trigger('change'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="SelectMarital" id="marital1" type="radio" name="marital" value="1" checked/> 
 
<input class="SelectMarital" id="marital2" type="radio" name="marital" value="2" /> 
 

 
<input class="SelectPrice" id="price1" type="radio" name="price" value="1" checked/> 
 
<input class="SelectPrice" id="price2" type="radio" name="price" value="2" /> 
 

 
<a href="#" id="salary" class="btn disabled">Next Step</a>

0

是的,這是很簡單的。

創建一個方法並將其作爲第一種方法調用,以檢查單選按鈕的狀態是否爲選中狀態,然後添加類。這是因爲你剛剛處理了單選按鈕onChange()中的邏輯,所以你沒有刷新所需的結果。

$(document).ready(function() { 
    checkRadioButtonStatus(); 

    function checkRadioButtonStatus() { 
     if($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { 
      $("#salary").removeClass('disabled'); 
     } 
     else { 
      $("#salary").addClass('disabled'); 
     } 
    } 
});