webForumDet fria alternativet

varnar ändå om jag bara skriver siffror

JavaScript

6 svar · 202 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Här är min kod:


<script language="javascript">
function check(formobj){

if(formobj.satsa.value.length==0){
alert('Du måste ange hur mycket du vill satsa.');
return false;
} else if (parseInt(document.form1.satsa.value)==document.form1.satsa.value){
alert('Du får endast skriva i siffror.');
return false;
} else {
return true;	
}
}

</script>

<form name="form1" method="post" action="affaren.asp?vad=spela#ner"  onsubmit="return check(this)">

Är det något jag har skrivit fel eller?

Medlem sedan mars 20007 896 inlägg
#2

Följande rad:
} else if (parseInt(document.form1.satsa.value)==document.form1.satsa.value){
kan nog inte se ut så, jämför man en integer mot en sträng så blir resultatet alltid false. Testa med följande istället:
} else if ( ( parseInt(document.form1.satsa.value) + "" ) == document.form1.satsa.value ){

Medlem sedan feb. 20011 498 inlägg
#3

Får ändå en varning när jag bara skriver siffror.

Medlem sedan mars 20007 896 inlägg
#4

if(formobj.satsa.value.length==0)
->
if(document.formobj.satsa.value.length==0)
:q

Medlem sedan feb. 20011 498 inlägg
#5

Då funkar ingen av funktionerna, alltså den varnar inte om jag lämnar fältet tomt eller om jag skriver tecken som inte är siffror.

Medlem sedan feb. 20011 498 inlägg
#6

Ingen som vet vad felet kan vara?

Medlem sedan juli 2001434 inlägg
#7

Här får du svaret

<script language="javascript">

function isDigit(c)
{
  return ((c >= "0") && (c <= "9"));
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0));
}

function isInteger(s)
{
    if (isEmpty(s))
    {
      return false;
    }

    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);

        if (!isDigit(c))
	{
          return false;
	}
    }
 
    return true;
}

function check()
{
  if(!isInteger(document.test.satsa.value))
  {
    //OBS! Skrivs även om fältet är tomt
    alert("Du får endast skriva i siffror");
    return false;
  } 
  else 
  {
    return true;	
  }
}

</script>

<form name="test">
Skriv här : <input name="satsa">
<input type="submit" onclick="check()">
</form>
255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)