我還是比較新的JavaScript,我沒有找到我犯我的錯誤。我正在使用的基本設置是一組單選按鈕以及一組複選框。根據所選的單選按鈕,只有一組特定的複選框應該可用,其餘的應該被禁用/變灰。給定的單選按鈕允許哪些複選框通過php數組傳遞。在我的代碼中,排他選項指向單選按鈕,而擴展選項指複選框。我的JavaScript和PHP實現此功能如下:Javascript - Onclick事件發生在和僅在頁面加載期間
window.onload = function(){
<?php
for($i = 0; $i < count($students_information); $i++){
foreach($exclusive_extended_array as $exclusive => $extended){
echo "$('".$i."_exclusive_".$exclusive."').onclick = allow(".$i.",".json_encode($extended).");";
}
}
?>
}
function allow(i, extended){
$('[id^="'+i+'Extended"]').disabled = true;
for (var j = 0; j < extended.length; j++) {
alert(extended[j]);
$(i+"Extended"+extended[j]).disabled = false;
}
}
在加載的頁面就顯示爲:
<script type="text/javascript">
window.onload = function(){
$('0_exclusive_2176').onclick = allow(0,[1975]);
$('0_exclusive_911').onclick = allow(0,[]);
$('0_exclusive_795').onclick = allow(0,[1973,1975]);
}
function allow(i, extended){
$('[id^="'+i+'Extended"]').disabled = true;
for (var j = 0; j < extended.length; j++) {
alert(extended[j]);
$(i+"Extended"+extended[j]).disabled = false;
}
}
</script>
不幸的是,該代碼最終做的是運行腳本時頁面加載,而比選中其中一個單選按鈕時要少。我不認爲這是元素名稱的問題(儘管我知道命名風格並不一致,但是我沒有完全控制它)。我假設這只是我在代碼中犯了一個簡單的錯誤,而我仍然沒有足夠的JavaScript經驗來抓它。任何人看到我做錯了什麼?
謝謝你的時間!
嘗試$('0_exclusive_2176')。onclick = function(){你的代碼在這裏} – MilkyWayJoe