Hej,
Jeg er frivillig og ulønnet webmaster uden javascript erfaring overhovedet. Og behov er ultra sjældent så jeg håber en eller anden vil hjælpe på trods af at det er et basisspørgsmål.
I en formular fra RSJoomla har jeg behov for at validere på svaret i nogen spørgsmål. Disse er delt ind i to grupper. I den ene gruppe er der tre svarmuligheder med værdierne 1-3. Og den anden med værdierne 1-4.
Kravet er, at i første gruppe må kun ét spørgsmål have svaret 1 - ligeledes med 2 og så videre. Altså en slags ranking.
Det samme gælder i gruppe 2 - igen må kun ét spørgsmål have svaret "1".
Jeg har den kode (se nedenfor) der skal til for at checke i første gruppe med de 3 spørgsmål men mangler koden for også at få valideret i gruppe 2.
Det fungerer på den måde, at en submit knap er inaktiv indtil alt er valideret. Og på hver spørgsmålsknap ligger en kommando onclick="duplicate();"
Er der én der vil hjælpe mig med at udvide koden en lille smule?
På forhånd tak.
- <script>
- function duplicate(){
-
- var checked = [];
-
- var i;
- for(i=0;i<document.getElementsByName('form[one]').length;i++)
- if (document.getElementById('one'+i).checked){
- var one = document.getElementById('one'+i).value;
- checked.push(one);
- }
-
- var j;
- for(j=0;j<document.getElementsByName('form[two]').length;j++)
- if (document.getElementById('two'+j).checked){
- var two = document.getElementById('two'+j).value;
- checked.push(two);
- }
-
- var k;
- for(k=0;k<document.getElementsByName('form[three]').length;k++)
- if (document.getElementById('three'+k).checked){
- var three = document.getElementById('three'+k).value;
- checked.push(three);
- }
-
- var arr = [one, two, three];
- var sorted_arr = arr.sort();
-
- var results = [];
- for (var h = 0; h < arr.length - 1; h++) {
- if (sorted_arr[h + 1] == sorted_arr[h]) {
- results.push(sorted_arr[h]);
- }
- }
- if (results.length > 0)
- document.getElementById('Submit').disabled = true;
-
- else if (checked.length == 3)
- document.getElementById('Submit').disabled = false;
- }
Indlæg senest redigeret d. 29.09.2014 16:38 af Bruger #20995