webForumDet fria alternativet

Kolla alla formulär med samma function.

JavaScript

5 svar · 226 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#1

Hej!

Jag har massa formulär (form1, form2, form3 osv). Jag skulle vilja kolla om alla element har ett värde (inte tomt), om inte då visas en PopUp.
Det svåra är att varje formulär har olika antal element och olika namn på dem.

Jag har kommit en bit:

<script language="JavaScript">

function Check(i) {
var all = document.forms[0].elements;
  
if(all.length !=0) {
document.form+ i +.submit();
} else {
alert("Vänligen fyll i fälten..");
}
}
</script>

Jag kollar formulären med: onClick="Check(1);", onClick="Check(2);", onClick="Check(3);" osv

Medlem sedan sep. 20021 655 inlägg
#2

Vad är det för sorts formulärselement?

Om det bara är <input type="text"> och <textarea> kan du skriva så här:

<script type="text/javascript">
function Check(formnum) {
  var theForm = document.forms[formnum]
  var all = theForm.elements;
  
  for(i=0; i<all.length; i++){
    if(all[i].value=="")
      alert("Fyll i alla fält");
      return false;
  }

  theForm.submit();
}
</script>

Jag undrar förresten om inte Jojoxx har en bra funktion på sin sida... titta där:
http://www.jojoxx.net

Medlem sedan aug. 2002733 inlägg
#3

Det står att det förväntas ett ";"!

onClick="Check(1)" -- det är så jag skriver ut va?

Medlem sedan aug. 2002733 inlägg
#4

Sebbe har hjälpt mig med denna kod, men den fungerar inte:

<script language="JavaScript">
function check(obj) {
  var ifyllt = true;
  var all = obj.elements;

  for(var i = 0; i == all.length; i++) {
    if(all[i].value == "") {
      ifyllt = false;
    }
  }
  if(!ifyllt) {
    alert("Fyll i!");
    return false;
  } else {
    return true;
  }
}
</script>

sedan i form gör jag en onSubmit="check(this);"

Medlem sedan sep. 20021 655 inlägg
#5

En liten ändring, så ska det nog funka:

<script language="JavaScript">
function check(obj) {
  var ifyllt = true;
  var all = obj.elements;

  for(var i = 0; i < all.length; i++) {
    if(all[i].value == "") {
      ifyllt = false;
    }
  }
  if(!ifyllt) {
    alert("Fyll i!");
    return false;
  } else {
    return true;
  }
}
</script>
Medlem sedan sep. 20021 655 inlägg
#6

Jag såg förresten några fel i funktionen jag skrev ovan.
Du kan testa att göra så här istället:

<script type="text/javascript">
function Check(formnum) {
  var theForm = document.forms[formnum];
  var all = theForm.elements;
  
  for(i=0; i<all.length; i++){
    if(all[i].value==""){
      alert("Fyll i alla fält");
      return false;
    }
  }

  theForm.submit();
}
</script>
267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)