webForumDet fria alternativet

Mera formulärsvalidering. Selectlistor.

JavaScriptur Javascript

7 svar · 260 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Denna gång har jag tre likadana selectlistor, bara namnen skiljer.

Skulle då gärna vilja få till så att man inte kan välja samma val i dom.
Exempel på select.

Namnen är typ: PrisValuta, PrisValuta2, PrisValuta3

Ideer? Länkar?

      <select name="PrisValuta">
        <option value=7>AUD</option>
        <option value=3>CAD</option>
        <option value=9>DEK</option>
        <option value=8>DEM</option>
        <option value=4>EUR</option>
        <option value=10>FRF</option>
        <option value=5>GBP</option>
        <option value=11>HKD</option>
        <option selected value=1>SEK</option>
        <option value=2>USD</option>
      </select>
Medlem sedan juni 20014 421 inlägg
#2

Idé så här sent på kvällen. (Inge kod, för trött för det) :)

Skapa en array där du (dynamiskt eller statiskt) plockar in namnen. Sedan så kör du en validering på onchange, där du då loopar igenom arrayen så att du får rätt namn på fälten och kollar av om dem stämmer överens. Bör inte vara alltför svårt.

Medlem sedan maj 20023 372 inlägg
#3

Klurade på den och fick lite hjälp på vägen på irc.

Varsågod: :)

<HTML>
<HEAD>
<TITLE> Submit validation </TITLE>

<script>
function validateForm(yourForm)
{

with (yourForm)
   if (PrisValuta.selectedIndex!=PrisValuta2.selectedIndex && PrisValuta2.selectedIndex!=PrisValuta3.selectedIndex && PrisValuta.selectedIndex!=PrisValuta3.selectedIndex)
       submit()
   else{
       alert('Du har flera lika'); PrisValuta.focus()
       }

}

</script>

</HEAD>

<BODY>

<FORM METHOD="POST" ACTION="page2.html" onSubmit="return false">

      <select name="PrisValuta">
        <option value=7>AUD</option>
        <option value=3>CAD</option>
        <option value=9>DEK</option>
        <option value=8>DEM</option>
        <option value=4>EUR</option>
        <option value=10>FRF</option>
        <option value=5>GBP</option>
        <option value=11>HKD</option>
        <option selected value=1>SEK</option>
        <option value=2>USD</option>
      </select>
<p>
      <select name="PrisValuta2">
        <option value=7>AUD</option>
        <option value=3>CAD</option>
        <option value=9>DEK</option>
        <option value=8>DEM</option>
        <option value=4>EUR</option>
        <option value=10>FRF</option>
        <option value=5>GBP</option>
        <option value=11>HKD</option>
        <option selected value=1>SEK</option>
        <option value=2>USD</option>
      </select>
<p>

      <select name="PrisValuta3">
        <option value=7>AUD</option>
        <option value=3>CAD</option>
        <option value=9>DEK</option>
        <option value=8>DEM</option>
        <option value=4>EUR</option>
        <option value=10>FRF</option>
        <option value=5>GBP</option>
        <option value=11>HKD</option>
        <option selected value=1>SEK</option>
        <option value=2>USD</option>
      </select>

<p>
<INPUT TYPE="button" value="Press here" onClick="validateForm(this.form)">
</FORM>

</BODY>
</HTML>

Kan testköras här: http://www.studentbok.com/test.html

Medlem sedan mars 20015 287 inlägg
#4

Bugar och bockar allra ödmjukast. Fungerar ju ypperligt. :)

Medlem sedan maj 20023 372 inlägg
#5

Bara roligt att jag kunde hjälpa dig för en gångs skull, brukar ju vara tvärtom annars. :)

Medlem sedan mars 20015 287 inlägg
#6

Man ska alltid sträva framåt så jag eftersöker en modifikation till ovanstående script.
Försöker lite själv, men än så länge utan framgång.

Skulle vara bra om det skulle vara tillåtet att om man lägger till ett val:

<option value=0>-Tomt-</option>

Detta skulle då vara tillåtet att flera av listorna får ha.

Man får ju ge sig på att skriva in det i kollen... :r

Medlem sedan dec. 20025 483 inlägg
#7
with (yourForm)
   if (PrisValuta.selectedIndex!=PrisValuta2.selectedIndex && PrisValuta2.selectedIndex!=PrisValuta3.selectedIndex && PrisValuta.selectedIndex!=PrisValuta3.selectedIndex [b]|| PrisValuta.selectedIndex == 0[/b])
       submit()
   else{
       alert('Du har flera lika'); PrisValuta.focus()
       }

}

:)

Medlem sedan mars 20015 287 inlägg
#8

Kalas!

128 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)