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

(Resolvido) porque essa funcao não funciona?!?


Notax

Pergunta

Pessoal, tenho essa função abaixo:

<script language="javascript">
function valida_campo()
{

var hi1 = document.form.hi1;

var hf1 = document.form.hf1;



    if (hi1.value > hf1.value){
        alert("A 1ª hora final está menor do que a 1ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf1.focus()
        return false
        }



    }

</script>

<html>


</html>
        <select name="hi1" id="hi1">
          <option selected></option>
          <option>0</option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
          <option>21</option>
          <option>22</option>
          <option>23</option>
          <option>24</option>
        </select>


        <select name="hf1" id="hf1">
          <option selected></option>
          <option>0</option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
          <option>21</option>
          <option>22</option>
          <option>23</option>
          <option>24</option>
        </select>

no FF SEMPRE da o alert, mesmo quando não deveria e no IE NUNCA da o alert mesmo quando deveria...

Rola uma forcinha?

[]'s Notax

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Os Options não tem value definido.

Das duas uma, ou você coloca os valores "value" nas tags com seus reespectivos valores, ou você usa:

if ( parseInt(hi1.innterHTML) > parseInt(hf1.innerHTML))

Assim você pegaria o valor de dentro das tags option e transformaria em inteiro, já que os valores são sempre em string, quando capturados do input.

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Kakarotto, tentei assim como sugeiu mas mesmo assim continuou não funcionando...

vou postar aqui a função inteira... não tinha o feito antes porque é meio grandinha... será que eu cometi algum outro erro?

<script language="javascript">
function valida_campo()
{
var nome = document.form.nome;
var txtdd = document.form.txtdd;
var txtmm = document.form.txtmm;
var txtaa = document.form.txtaa;
var hi1 = document.form.hi1;
var hi2 = document.form.hi2;
var hi3 = document.form.hi3;
var hi4 = document.form.hi4;
var hi5 = document.form.hi5;
var hi6 = document.form.hi6;
var hi7 = document.form.hi7;
var hi8 = document.form.hi8;
var hi9 = document.form.hi9;
var hi10 = document.form.hi10;
var hi11 = document.form.hi11;
var hi12 = document.form.hi12;
var hi13 = document.form.hi13;
var hi14 = document.form.hi14;
var hi15 = document.form.hi15;
var hf1 = document.form.hf1;
var hf2 = document.form.hf2;
var hf3 = document.form.hf3;
var hf4 = document.form.hf4;
var hf5 = document.form.hf5;
var hf6 = document.form.hf6;
var hf7 = document.form.hf7;
var hf8 = document.form.hf8;
var hf9 = document.form.hf9;
var hf10 = document.form.hf10;
var hf11 = document.form.hf11;
var hf12 = document.form.hf12;
var hf13 = document.form.hf13;
var hf14 = document.form.hf14;
var hf15 = document.form.hf15;


    if (nome.value==""){
        alert("Digite o Nome!");
        nome.focus()
        return false
        }
    if (txtdd.value==""){
        alert("Digite o dia!");
        txtdd.focus()
        return false
        }
    if (txtdd.value <1){
        alert("O dia da data está incorreto!");
        txtdd.focus()
        return false
        }
    if (txtdd.value >31){
        alert("O dia da data está incorreto!");
        txtdd.focus()
        return false
        }
    if (txtmm.value==""){
        alert("Digite o mês!");
        txtmm.focus()
        return false
        }
    if (txtmm.value <1){
        alert("O mês da data está incorreto!");
        txtmm.focus()
        return false
        }
    if (txtmm.value >12){
        alert("O mês da data está incorreto!");
        txtmm.focus()
        return false
        }
    if (txtaa.value==""){
        alert("Digite o ano!");
        txtaa.focus()
        return false
        }
    if (txtaa.value <1900){
        alert("O ano da data está incorreto!");
        txtaa.focus()
        return false
        }
    if (txtaa.value >3000){
        alert("O ano da data está incorreto!");
        txtaa.focus()
        return false
        }

    if ( parseInt(hi1.innterHTML) > parseInt(hf1.innerHTML))
        alert("A 1ª hora final está menor do que a 1ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf1.focus()
        return false
        }
    if ( parseInt(hi2.innterHTML) > parseInt(hf2.innerHTML))
        alert("A 2ª hora final está menor do que a 2ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf2.focus()
        return false
        }

    if ( parseInt(hi3.innterHTML) > parseInt(hf3.innerHTML))
        alert("A 3ª hora final está menor do que a 3ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf3.focus()
        return false
        }

    if ( parseInt(hi4.innterHTML) > parseInt(hf4.innerHTML))
        alert("A 4ª hora final está menor do que a 4ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf4.focus()
        return false
        }

    if ( parseInt(hi5.innterHTML) > parseInt(hf5.innerHTML))
        alert("A 5ª hora final está menor do que a 5ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf5.focus()
        return false
        }

    if ( parseInt(hi6.innterHTML) > parseInt(hf6.innerHTML))
        alert("A 6ª hora final está menor do que a 6ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf6.focus()
        return false
        }

    if ( parseInt(hi7.innterHTML) > parseInt(hf7.innerHTML))
        alert("A 7ª hora final está menor do que a 7ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf7.focus()
        return false
        }

    if ( parseInt(hi8.innterHTML) > parseInt(hf8.innerHTML))
        alert("A 8ª hora final está menor do que a 8ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf8.focus()
        return false
        }

    if ( parseInt(hi9.innterHTML) > parseInt(hf9.innerHTML))
        alert("A 9ª hora final está menor do que a 9ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf9.focus()
        return false
        }

    if ( parseInt(hi10.innterHTML) > parseInt(hf10.innerHTML))
        alert("A 10ª hora final está menor do que a 10ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf10.focus()
        return false
        }

    if ( parseInt(hi11.innterHTML) > parseInt(hf11.innerHTML))
        alert("A 11ª hora final está menor do que a 11ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf11.focus()
        return false
        }


    if ( parseInt(hi12.innterHTML) > parseInt(hf12.innerHTML))
        alert("A 12ª hora final está menor do que a 12ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf12.focus()
        return false
        }

    if ( parseInt(hi13.innterHTML) > parseInt(hf13.innerHTML))
        alert("A 13ª hora final está menor do que a 13ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf13.focus()
        return false
        }

    if ( parseInt(hi14.innterHTML) > parseInt(hf14.innerHTML))
        alert("A 14ª hora final está menor do que a 14ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf14.focus()
        return false
        }
    if ( parseInt(hi15.innterHTML) > parseInt(hf15.innerHTML))
        alert("A 15ª hora final está menor do que a 15ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf15.focus()
        return false
        }


    }

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

function blokletras(caracter) {
var tecla;

if(window.event) // Internet Explorer
  tecla = event.keyCode;

else // Firefox
   tecla = caracter.which;


if(tecla == 46)
  return false;

else return true;
}





</script>

valeu a força

[]'s Notax

Link para o comentário
Compartilhar em outros sites

  • 0

fala pessoal... seguinte... eu vi ali que estavam faltando chaves no final... mas mesmo com elas não funcionou...

tipo, tentei dessa forma:

<script language="javascript">
function valida_campo()
{

var hi1 = document.form.hi1;

var hf1 = document.form.hf1;



    if ( parseInt(hi1.innterHTML) > parseInt(hf1.innerHTML)){
        alert("A 1ª hora final está menor do que a 1ª hora inicial. Acerte de forma que a hora final seja sempre maior do que a hora inicial.");
        hf1.focus()
        return false
        }



    }

</script>

<html>


</html>
        <select name="hi1" id="hi1">
          <option selected></option>
          <option>0</option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
          <option>21</option>
          <option>22</option>
          <option>23</option>
          <option>24</option>
        </select>


        <select name="hf1" id="hf1">
          <option selected></option>
          <option>0</option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
          <option>21</option>
          <option>22</option>
          <option>23</option>
          <option>24</option>
        </select>
se eu colocasse os valores "value" nas tags do select funcionaria será? tipo fazer só assim:
<option value="0">0</option>
<option value="1">1</option>

mas daí tenho que usar o parseint, eval ou nada precisa?

valeu a força!

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe notax, eu esqueci de um pequeno detalhe. Pra você saber qual foi a opção escolhida, você precisa usar o select.options[select.selectedIndex]

Ao invés de:

if ( parseInt(hi1.innterHTML) > parseInt(hf1.innerHTML))
Seria:
if ( parseInt(hi1.options[hi1.selectedIndex].innterHTML) > parseInt(hf1.options[hf1.selectedIndex].innerHTML))

Os options estão armazenados em um vetor no javascript, pra saber qual foi o escolhido você usa o selectedIndex, propriedade do select.

Notax, cuidado com o html. O seu select tá fora do html, o html não tem body... tá uma zona isso aí.

Aquele abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Kaka...

rssssssssssssssssssss... eu vi que ficou uma zona...

é que tipo... na hora de copiar pra ca fui fazendo uma seleçãozinha manual, e pra identificar que um era o scrip e o outro era html sem usar duas tags code resolvi fazer desse jeito aí... só que fiz tudo errado! rssssssssssss foi mau...

mas pode deixar que no codigo mesmo não ta assim...

valeu a força cara... consegui entender aqui... e consegui fazer agora dos dois jeitos que você ensinou aí... tanto usando inner.html e o vetor, tanto quanto usando os value...

mas mantive aqui essa última opção que você sugeriu!

[]'s e valeu a força.

Notax

Link para o comentário
Compartilhar em outros sites

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...