Ir para conteúdo
Fórum Script Brasil
  • 0

Código que não funciona direito só no Internet Explorer


TioPhill

Pergunta

Olá, gente. Sou novato em programação com Javascript, e há pouco tempo, criei um script para mostrar ou oucltar campos de formulário, de acordo com opções escolhidas em campos anteriores. E o script também pega essas opções e monta um texto, que aparece mais embaixo na página. Basicamente, selecionando opções, montar um texto.

No Firefox e o google Chrome, o código funciona perfeitamente. Porém, tanto nas versões 6, 7 e 8 do Internet Explorer, quando é exibido os campos de id 'objeto_tse' e 'prazo_concedido_text', os campos do tipo text não aceitam que eu digite neles. Eles aparecem e somem a contento, de acordo com o script, mas não me deixam digitar nada neles. E o pior é que o depurador do Internet Explorer 8 não acusou erro nenhum.

Eis o código html da página:

<script src="./func_portarias.js" type="text/javascript">
</script>
<form id="form1" name="form1" method="post" action="./index.php?item=portprocess">
<table width="515" border="0">
      <tr>
        <td colspan="2">  <p><strong>O PREFEITO  MUNICIPAL DE BIGUAÇU, no uso de suas atribuições, que lhe são conferidas pelo  artigo 98 incisos I e VIII da Lei Orgânica do Município, <div id="secao_lei" style="display:inline;" >em conformidade com a  Lei Nº 
	<input class="nosize" type="text" name="numerolei" id="numerolei" onKeypress="escreveportaria_keypress();"/>
  ,</div> resolve baixar a seguinte Portaria:</strong><br>
  <input type="checkbox" name="checalei" id="checalei" value="66" onClick="mostralei();" onChange="mostralei();" checked>Mostrar lei</input></td>
      </tr>
      <tr>
        <td colspan="2">  <label>Número da Portaria:
		<input class="nosize" type="text" name="numeroportaria" id ="numeroportaria" onKeypress="escreveportaria_keypress();" />
        </label></td>
</tr>
	</table>
	<table width="515" border="0" id="form_opcao" style="display:inline;">
      <tr>
        <td width="144">	<label>Ação:<br>
	  <select class="nosize" name="acao" id="acao" size="10" onChange="mostra(); escreveportaria_keypress();">
		<option value="ad">Admitir</option>
		<option value="aut">Autorizar</option>
		<option value="con">Conceder</option>
		<option value="dec">Declarar</option>
		<option value="des">Designar</option>
		<option value="ex">Exonerar</option>
		<option value="nom">Nomear</option>
		<option value="pro">Prorrogar</option>
		<option value="sus">Sustar</option>
		<option value="tse">Tornar sem efeito</option>
	  </select>
	</label></td>
        <td width="361"><label><div id="k22" style="display:none; ">
	Objeto a conceder:</div><br>
	  <select class="nosize" id="concess_objeto" style="display:none;" onChange="mostra(); escreveportaria_keypress();" name="concess_objeto"  size="8">
		<option value="exo">exoneração</option>
		<option value="fer">férias</option>
		<option value="gra">gratificação</option>
		<option value="lge">licença gestação</option>
		<option value="lmt">licença maternidade</option>
		<option value="lsv">licença sem vencimento</option>
		<option value="prz">o prazo de</option>
		<option value="rdf">readaptação de função</option>
	 </select>
	 </label>

     <label id="ato_autorizado" style="display:none; ">
		<select class="nosize" name="ato_autorizado" id="ato_autorizado_text" size="8">
			<option value="cond">a conduzir veículos desta municipalidade</option>
		</select>
		<br>
	</label>
	<label id="tornado_sem_efeito" style="display:none;">
		<select class="nosize" name="tornado_sem_efeito" id="tornado_sem_efeito_text" size="8">
			<option value="port" selected>a portaria</option>
		</select>
	</label>
     </td>
      </tr>
      <tr>
        <td height="45" colspan="2"><label id="prazo_concedido" style="display:none;" onKeyPress="mostra(); escreveportaria_keypress();" onChange="mostra(); escreveportaria_keypress();">Objeto prorrogado:<br>
          <input class="nosize" type="text" id="prazo_concedido_text" name="prazo_concedido" size="65"onKeyPress="mostra(); escreveportaria_keypress();" onChange="mostra(); escreveportaria_keypress();">
        </label>
		<label id="label_objeto_tse" style="display:none;"><br>Tornado sem efeito:</br>
		<input class="nosize" type="text" id="objeto_tse" onKeyPress="mostra(); escreveportaria_keypress();">		
		</label>
		</td>
      </tr>
      <tr>
        <td>Gênero:<br>
	  <select class="nosize" name="genero" id="genero" size="4" onChange="escreveportaria_keypress();">
		<option value="masc">o funcionário</option>
		<option value="fem">a funcionária</option>
		<option value="mascs">os funcionários</option>
		<option value="fems">as funcionárias</option>
	  </select>
	  </label></td>
        <td> </td>
      </tr>
	  </table>
	  <table width="515" border="0">
      <tr>
        <td colspan="2">	<label>Nome do funcionário:<br>
		<input class="nosize" type="text" name="nome_func" id="nome_func" size="75" onKeyPress ="mostra(); escreveportaria_keypress();" onChange="mostra(); escreveportaria_keypress();"/>
	</label></td>
      </tr>
	  </table>
	  <table width="515" border="0"  id="form_opcao2" style="display:inline;">
      <tr>
        <td colspan="2">  <p>
          <label>Cargo:<br>
            <select class="nosize" name="cargo" id="cargo" size="5" onChange="escreveportaria_keypress();">
              <option value="1">para ocupar o cargo comissionado de</option>
              <option value="2">ocupante do cargo efetivo de</option>
			  <option value="3">ocupante do cargo em caráter temporário de</option>
              <option value="4">para ocupar o cargo efetivo de</option>
			  <option value="5">ocupante do cargo em comissão de</option>
            </select>
            <br>
        </label></td>
      </tr>
      <tr>
        <td colspan="2">	<label>Nome do cargo:<br>
          <input class="nosize" type="text" name="cargoname" size="75" id="cargoname" onKeyPress="mostra(); escreveportaria_keypress();" onChange="mostra(); escreveportaria_keypress();"/>
          <br>
        </label></td>
      </tr>
      <tr>
        <td>	<label>
		<select class="nosize" name="prazo" id="prazo" size="2" onChange="escreveportaria_keypress();">
			<option value="prazode">pelo prazo de</option>
			<option value="partirde">a partir de</option>
		</select>
		<br>
	</label></td>
        <td> </td>
      </tr>
      <tr>
        <td colspan="2">	<label>Prazo:<br>
          <input class="nosize" type="text" name="partirde" id="partirde" onKeyPress="mostra(); escreveportaria_keypress();" onChange="mostra(); escreveportaria_keypress();"/>
          <br>
        </label></td>
      </tr>
	  </table>
	  <table width="515" border="0">
      <tr>
        <td height="60" colspan="2">	<label>
		<div id="testeportaria"></div>
  </label></td>
      </tr>
      <tr>
        <td colspan="2">	<label><strong class="vermelho" >Escrever texto próprio de portaria.</strong> 
		<input name="checacp" id="checacp" type="checkbox" value="42" onClick="mostra(); escreveportaria_keypress();"  onChange="escreveportaria_keypress();"/> 
		<br><br>(Caso as opções acima não consigam preencher a portaria.)</br>
	</label>
	<br />
	<label id ="labelcasoparticular" style="display:none" ><strong>Escreva o texto:</strong> <strong class="italic">(para dar destaque a partes do texto, coloque-a entre colchetes [ ])</strong>
		<br>
		<textarea class="nosize" name="casoparticular" id="casoparticular" cols="75" rows="5" style="display:none" onChange="escreveportaria_keypress();" onKeyPress="escreveportaria_keypress();"></textarea>
	</label>
	<br />
	<input type="hidden" name="portaria_envio" id="portaria_envio" />
  <label>Enviar
	  <input type="submit" name="button" id="button" value="Enviar" onClick="return checacampos();"/>
	</label></td>
      </tr>
	</table>
</form>
E eis o java script:
function mostra() {
            
            document.getElementById('concess_objeto').style.display="none";
            document.getElementById('k22').style.display="none";
            document.getElementById('prazo_concedido').style.display="none";
            document.getElementById('prazo_concedido_text').style.display="none";
            document.getElementById('k22').style.display="none";
            document.getElementById('label_objeto_tse').style.display="none";
            document.getElementById('ato_autorizado').style.display="none";
            document.getElementById('tornado_sem_efeito').style.display="none";
            document.getElementById('objeto_tse').style.display="none";
    
        if (document.getElementById('acao').value=="aut") {
            document.getElementById('ato_autorizado').style.display="inline";
        }
        else if (document.getElementById('acao').value=="tse") {
            document.getElementById('tornado_sem_efeito').style.display="inline";
            if(document.getElementById('tornado_sem_efeito_text').value=="port") {
                document.getElementById('label_objeto_tse').style.display="inline";
                document.getElementById('objeto_tse').style.display="inline";
            }
        }
        else if (document.getElementById('acao').value=="con" || document.getElementById('acao').value=="pro" || document.getElementById('acao').value=="sus") {
            document.getElementById('concess_objeto').style.display="inline";
            document.getElementById('k22').style.display="inline";
            document.getElementById('label_objeto_tse').style.display="none";
            document.getElementById('k22').style.display="inline";
            if (document.getElementById('concess_objeto').value=="prz") {
                document.getElementById('prazo_concedido').style.display="inline";
                document.getElementById('prazo_concedido_text').style.display="inline";
                
            }
            else {
                document.getElementById('prazo_concedido').style.display="none";
                document.getElementById('prazo_concedido_text').style.display="none";
            }
        }        
        else if(document.getElementById('acao').value=="tse") {
            document.getElementById('label_objeto_tse').style.display="inline";
            document.getElementById('prazo_concedido').style.display="none";
            document.getElementById('concess_objeto').style.display="none";
        }
        else {
            document.getElementById('concess_objeto').style.display="none";
            document.getElementById('k22').style.display="none";
            document.getElementById('prazo_concedido').style.display="none";
            document.getElementById('k22').style.display="none";
            document.getElementById('label_objeto_tse').style.display="none";
            document.getElementById('ato_autorizado').style.display="none";
            document.getElementById('tornado_sem_efeito').style.display="none";
        }
    }
    
    
    function escreveportaria_keypress()
        {
            setTimeout("escreveportaria()", 1);
        }
    
    
    function escreveportaria()
        {
                var numerolei = valorcampo('numerolei');
                var numeroportaria = valorcampo('numeroportaria');
                var cont_div = document.getElementById('testeportaria');
                var tag_strong = "<strong class=\"versalete\">";
                var tag_strong_end = "</strong>";
                var acao_num = numselect('acao');
                var acao_text = pegaselect('acao');
                var genero_text = pegaselect('genero');
                var cargo_text = pegaselect('cargo');
                var nome_func_text = valorcampo('nome_func');
                var nome_cargo_text = valorcampo('cargoname');
                var prazo_text = pegaselect('prazo');
                var prazo_concedido_text = valorcampo('prazo_concedido_text');
                var partirde_text = valorcampo('partirde');
                var proprio_text = valorcampo('casoparticular');
                if (document.getElementById('checacp').checked == false) {
                
                document.getElementById('labelcasoparticular').style.display="none";
                document.getElementById('casoparticular').style.display="none";
                document.getElementById('form_opcao').style.display="inline";
                document.getElementById('form_opcao2').style.display="inline";
                
                var tag_strong_alt = tag_strong;
                var tag_strong_end_alt = tag_strong_end;
                var concess_objeto_text = "";
                var tse_text = "";
                var tse_text_obj = "";
                var ato_autorizado_text = "";


                
                if (acao_num == "2" || acao_num== "7" || acao_num=="8" && acao_text != undefined) {
                    var concess_objeto_text = pegaselect('concess_objeto');
                    genero_text = colocacrase(genero_text);
                    var tag_strong_alt = tag_strong;
                    var tag_strong_end_alt = tag_strong_end;
                    }
                else if(acao_num == "7" && numselect('concess_objeto') == "6") {
                    var tag_strong_alt = "";
                    var tag_strong_end_alt = "";
                    genero_text = " " + colocade(genero_text);
                    }
                else if(acao_num == "1") {
                    var ato_autorizado_text = ", " + pegaselect('ato_autorizado_text');
                    var tse_text = "";
                    var tag_strong_alt = tag_strong;
                    var tag_strong_end_alt = tag_strong_end;
                    }
                else if(acao_num == "9") {
                    var ato_autorizado_text = "";
                    var tse_text = " " + pegaselect('tornado_sem_efeito_text');
                    var tse_text_obj = " " + valorcampo('objeto_tse');
                    var tag_strong_alt = tag_strong;
                    var tag_strong_end_alt = tag_strong_end;
                    }
                else {
                    var concess_objeto_text = "";
                    genero_text = pegaselect('genero');
                    var ato_autorizado_text = "";
                    var tse_text = "";
                    var tse_text_obj = "";
                    var tag_strong_alt = tag_strong;
                    var tag_strong_end_alt = tag_strong_end;
                    genero_text = pegaselect('genero');
                    if(acao_num == "2" || acao_num== "7") {
                        genero_text = colocacrase(genero_text);
                        }
                    prazo_concedido_text = "";
                    }
                    
                cont_div.innerHTML = tag_strong + acao_text + tag_strong_end + " " + tag_strong_alt + concess_objeto_text + tag_strong_end_alt + " " + tse_text + tse_text_obj + prazo_concedido_text +  " " + genero_text + " " + tag_strong + nome_func_text + tag_strong_end + ", " + cargo_text + " " + tag_strong + nome_cargo_text + tag_strong_end + ato_autorizado_text + " " + prazo_text + " " + partirde_text + ".";
                document.getElementById('portaria_envio').value = cont_div.innerHTML;
            }
            else {
                document.getElementById('labelcasoparticular').style.display="inline";
                document.getElementById('casoparticular').style.display="inline";
                document.getElementById('form_opcao').style.display="none";
                document.getElementById('form_opcao2').style.display="none";
                proprio_text = proprio_text.replace(/[[]/g, tag_strong);
                proprio_text = proprio_text.replace(/]/g, tag_strong_end);
                cont_div.innerHTML = proprio_text;
                document.getElementById('portaria_envio').value = cont_div.innerHTML;
            }
        

        }
        
    function pegaselect(campo) {
        var c_num = document.getElementById(campo).selectedIndex;
        if (c_num != "-1") {
            var c_text = document.getElementById(campo).options[c_num].text;
        }
        else
        {
            var c_text = "";
        }
        return c_text;
    }
    
    function numselect(campo) {
        var c_num = document.getElementById(campo).selectedIndex;
        return c_num;
        }
        
    function valorcampo(campo) {
        var c_cam = document.getElementById(campo).value;
        return c_cam;
        }
        
    function colocacrase(texto) {
        if(texto.search("a ") != -1) {
            var texto_ = texto.replace("a ","à ");
            }
        if(texto.search("as ") != -1) {
            var texto_ = texto.replace("as ","às ");
            }
        if(texto.search("o ") != -1) {
            var texto_ = texto.replace("o ","ao ");
            }
        if(texto.search("os ") != -1) {
            var texto_ = texto.replace("os ","aos ");
            }
        if(texto == "") {texto_ = "";}
        return texto_;
        }
        
    function colocade(texto) {
        if(texto.search("a ") != -1) {
            var texto_ = texto.replace("a ","da ");
            }
        if(texto.search("as ") != -1) {
            var texto_ = texto.replace("as ","das ");
            }
        if(texto.search("o ") != -1) {
            var texto_ = texto.replace("o ","dos ");
            }
        if(texto.search("os ") != -1) {
            var texto_ = texto.replace("os ","dos ");
            }
        if(texto.search("à ") != -1) {
            var texto_ = texto.replace("à ","da ");
            }
        if(texto.search("às ") != -1) {
            var texto_ = texto.replace("às ","das ");
            }
        if(texto.search("ao ") != -1) {
            var texto_ = texto.replace("ao ","do ");
            }
        if(texto.search("os ") != -1) {
            var texto_ = texto.replace("aos ","dos ");
            }
        if(texto == "") {texto_ = "";}
        return texto_;
        }
        
        function mostralei() {    
            if(document.getElementById('checalei').checked == true ) {
                document.getElementById('secao_lei').style.display="inline";
                }
            else {
                document.getElementById('secao_lei').style.display="none";
                }
        }
            
        function checacampos() {
            if (valorcampo('numeroportaria')=="") {
                alert("Preencha o número da portaria!");
                return false;
                }
            else if(valorcampo('nome_func')=="") {
                alert("Preencha o nome do funcionário!");
                return false;
                }
            else {
                return true;
            }
        
        }

Desde já, obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...