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;
}
}
Pergunta
TioPhill
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:
E eis o java script:Desde já, obrigado pela ajuda!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.