gente, possuo um select que lista psicólogos e estagiários. o evento será disparado caso o colaborador selecionado seja psicólogo.
fiz isso, creio que a lógica seja algo parecido…
<selectname="colaborador"class="custom-select ls-select {{$errors->has('colaborador')?'is-invalid':''}}"id="colaborador"><option{{$cl->psi_codigo==$pac->psi_codigo?'selected':''}}{{$cl->psi_ativo==2?'style=display:none;':''}}{{$cl->psi_funcao_exercida==1?'onchange=DesabilitaResponsavelPsi()':''}}value="{{$cl->psi_codigo}}">{{$cl->PSICOLOGOS}}</option>@endforeach</select>`//aqui associo o evento caso seja psicologo{{$cl->psi_funcao_exercida==1?'onchange=DesabilitaResponsavelPsi()':''}}
functionteste(combo){// retira a lógica do php e passa pra cáif(document.getElementById("psi_funcao_exercida").value=='1'&&combo.options[combo.selectedIndex].value=='sp'){alert('modificou!');}}
Fiz de outra forma que me atende.
fiz o seguinte…
Na descrição que é exibido no meu option é exibido a função exercida concatenado com o nome ex: Psicólogo:Cleiton Conceição.
no js obtive a descrição e verifico se no texto tem a palavra psicólogo:
<selectname="colaborador"class="custom-select ls-select {{$errors->has('colaborador')?'is-invalid':''}}"id="colaborador"onchange="DesabilitaResponsavelPsi()"><optionvalue=""></option>@foreach($listaColaboradoresas$cl)<option{{$cl->psi_codigo==$pac->psi_codigo?'selected':''}}{{$cl->psi_ativo==2?'style=display:none;':''}}value="{{$cl->psi_codigo}}">{{$cl->PSICOLOGOS}}</option>}@endforeach</select>//AQUI É O JS.functionDesabilitaResponsavelPsi(){vartexto=document.getElementById("colaborador").options[document.getElementById("colaborador").selectedIndex].text;if(texto.match(/Psicólogo:/))//aqui eu verifico se existe a palavra psicólogo.{document.getElementById('supervisor').value='';document.getElementById('supervisor').disabled=true;}else{document.getElementById('supervisor').disabled=false;}}
J
javaflex1 like
A ideia era essa mesmo, fazer a lógica do if no select, meu exemplo foi só para ilustrar um situação qualquer, nao para fazer o trabalho.