Javascript: Onload, если флажок установлен, изменить класс li - PullRequest
0 голосов
/ 12 мая 2010

У меня есть этот код на стороне JavaScript:

function changeSelectionStyle(id) {
    if(document.getElementById(id).className != 'yes'){
    document.getElementById(id).className = 'yes';
    }
    else{document.getElementById(id).className = '';}
}

И это на html:

<ul>
  <li id="selectedAuthorities-4_1li" class="">
    <input type="checkbox" id="selectedAuthorities-4_1" name="selectedAuthorities" value="ROLE_ADD_COMMENT_TO_CV" checked="checked" onload="changeSelectionStyle(this.id + 'li');" onclick="changeSelectionStyle(this.id + 'li'); checkFatherSelection(this.id);">

    <a href="#" onclick="document.getElementById('selectedAuthorities-4_1').click(); return false;">  Agregar comentario <samp><b></b>Permite agregar comentario en el detalle.</samp>
    </a>
 </li> 

Хорошо, что я не могу получить работу, когда установлен флажок, при загрузке JS должен проверить его и назначить class="yes "li, здесь: <li id="selectedAuthorities-4_1li" class="">

Что я должен добавить к своей исходной функции JS, чтобы сделать это возможным. Обратите внимание, что идентификаторы не являются статическими, они динамические, HTML-идентификатор li генерируется.

Процесс для решения (логика):

Событие при загрузке, проверьте, проверяется ли вход с X id, если это так, обновите родительский li с помощью функции JS changeSelectionStyle. Потому что проблема, которая у меня есть сейчас, заключается в том, что когда я выбираю вход (проверяю его), цвет li переключается, но когда он загружается с выбранным / проверенным входом, цвет остается неизменным, и его цвет меняется щелкните по входу (снимите флажок - неправильный эффект)

1 Ответ

0 голосов
/ 05 декабря 2014
window.onload=function(){
var inputFields=document.getElementsByTagName('input');
var checkBoxes[];
for(var i=0;i<inputFields.length;i++)
 if(inputFields[i].type=='checkbox'&&inputFields[i].checked=='checked'&& inputFields[i].parentNode.tagName=='LI')
inputFields[i].parentNode.className='yes';
}

Вот и мы ..

...