Avatar billede wisemind Nybegynder
18. februar 2010 - 16:26 Der er 6 kommentarer og
1 løsning

Form validering: Form submitter trods alert om fejl i registreringen

Kaere eksperter,

Jeg har en form, hvor folk skal udfylde info om sig selv, plus vaelge minimum 3 interesser fra checkboxes.

At folk vaelger minimum 3 interesser blir valideret med javascript, og det virker egentlig fint nok.

Men samtidig vil jeg ogsaa gerne validere at de andre felter i formen er udfyldt, hvis ikke skal scriptet alerte med en fejlbesked. Hvis man ikke udfylder de paakraevede felter alerter scriptet fint nok, men fortsaetter saa alligvel og submitter formen, hvilket jo ik er meningen.

Kode pasted nedenunder. Kan nogen se hvor den er gal? Paa forhaand mange tak.


<head>
<title>Last step</title>
<style type="text/css">
.form
{
    color: #000000;
    width:220px;
    height:30px;
    text-align:center;
    font-size:18px;
}

body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
</style>
<script Language="JavaScript">
<!--
function checkbox_checker()
{

// set var checkbox_choices to zero

var checkbox_choices = 0;

// Loop from zero to the one minus the number of checkbox button selections
for (counter = 0; counter < checkbox_form.checkbox.length; counter++)
{

// If a checkbox has been selected it will return true
// (If not it will return false)
if (checkbox_form.checkbox[counter].checked)
{ checkbox_choices = checkbox_choices + 1; }

}


if (checkbox_choices < 3 )
{
// If there were less then selections made display an alert box
alert("Please select at least three topics of interest. \n" + checkbox_choices + " entered so far.")
return (false);
}


if(document.checkbox_form.name.value == "") {
  alert("No name was entered.");
  value.checkbox_form.name.select();
  return (false);
}


}



</script>




</head>
<body>


<table width="500" border="0" class="form">
  <tr>
    <td><form name="checkbox_form" method="post" action="" onsubmit="return checkbox_checker()">
          <table width="463" class="demo" border="0">
            <tr>
              <td colspan="2" align="center" valign="top" style="padding-top:10px;">

                </p></td>
            </tr>
            <tr>
              <td width="31%">First name</td>
              <td width="69%"><input type="text" name="name" id="req1"></td>
            </tr>
            <tr>
              <td>Last name</td>
              <td><input type="text" name="lname" id="lname"></td>
            </tr>
            <tr>
              <td>Age</td>
              <td><select name="age_from">
                <option>Please select</option>
                <option value="18">18</option>
                <option value="19">19</option>
                <option value="20">20</option>
                <option value="21">21</option>
                <option value="22">22</option>
                <option value="23">23</option>
                <option value="24">24</option>
                <option value="25">25</option>
                <option value="26">26</option>
                <option value="27">27</option>
                <option value="28">28</option>
                <option value="29">29</option>
                <option value="30">30</option>
                <option value="31">31</option>
                <option value="32">32</option>
                <option value="33">33</option>
                <option value="34">34</option>
                <option value="35">35</option>
                <option value="36">36</option>
                <option value="37">37</option>
                <option value="38">38</option>
                <option value="39">39</option>
                <option value="40">40</option>
                <option value="41">41</option>
                <option value="42">42</option>
                <option value="43">43</option>
                <option value="44">44</option>
                <option value="45">45</option>
                <option value="46">46</option>
                <option value="47">47</option>
                <option value="48">48</option>
                <option value="49">49</option>
                <option value="50">50</option>
                <option value="51">51</option>
                <option value="52">52</option>
                <option value="53">53</option>
                <option value="54">54</option>
                <option value="55">55</option>
                <option value="56">56</option>
                <option value="57">57</option>
                <option value="58">58</option>
                <option value="59">59</option>
                <option value="60">60</option>
                <option value="61">61</option>
                <option value="62">62</option>
                <option value="63">63</option>
                <option value="64">64</option>
                <option value="65">65</option>
                <option value="66">66</option>
                <option value="67">67</option>
                <option value="68">68</option>
                <option value="69">69</option>
                <option value="70">70</option>
                <option value="71">71</option>
                <option value="72">72</option>
                <option value="73">73</option>
                <option value="74">74</option>
                <option value="75">75</option>
                <option value="76">76</option>
                <option value="77">77</option>
                <option value="78">78</option>
                <option value="79">79</option>
                <option value="80">80</option>
                <option value="81">81</option>
                <option value="82">82</option>
                <option value="83">83</option>
                <option value="84">84</option>
                <option value="85">85</option>
                <option value="86">86</option>
                <option value="87">87</option>
                <option value="88">88</option>
                <option value="89">89</option>
              </select></td>
            </tr>
            <tr>
              <td>Gender</td>
              <td><select name="select" id="select">
                <option>Please select</option>
                <option value="Male">Male</option>
                <option value="Female">Female</option>
              </select></td>
            </tr>
            <tr>
              <td>Country</td>
              <td><select>
    <option value="  " selected>(please select a country)</option>
    <option value="--">none</option>
    <option value="AF">Afghanistan</option>
    <option value="AL">Albania</option>
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    <option value="AO">Angola</option>
    <option value="AI">Anguilla</option>
    <option value="AQ">Antarctica</option>
    <option value="AG">Antigua and Barbuda</option>
    <option value="AR">Argentina</option>
    <option value="AM">Armenia</option>
    <option value="AW">Aruba</option>
    <option value="AU">Australia</option>
    <option value="AT">Austria</option>
    <option value="AZ">Azerbaijan</option>
    <option value="BS">Bahamas</option>
    <option value="BH">Bahrain</option>
    <option value="BD">Bangladesh</option>
    <option value="BB">Barbados</option>
    <option value="BY">Belarus</option>
    <option value="BE">Belgium</option>
    <option value="BZ">Belize</option>
    <option value="BJ">Benin</option>
    <option value="BM">Bermuda</option>
    <option value="BT">Bhutan</option>
    <option value="BO">Bolivia</option>
    <option value="BA">Bosnia and Herzegowina</option>
    <option value="BW">Botswana</option>
    <option value="BV">Bouvet Island</option>
    <option value="BR">Brazil</option>
    <option value="BN">Brunei Darussalam</option>
    <option value="BG">Bulgaria</option>
    <option value="BF">Burkina Faso</option>
    <option value="BI">Burundi</option>
    <option value="KH">Cambodia</option>
    <option value="CM">Cameroon</option>
    <option value="CA">Canada</option>
    <option value="CV">Cape Verde</option>
    <option value="KY">Cayman Islands</option>
    <option value="TD">Chad</option>
    <option value="CL">Chile</option>
    <option value="CN">China</option>
    <option value="CX">Christmas Island</option>
    <option value="CC">Cocos (Keeling) Islands</option>
    <option value="CO">Colombia</option>
    <option value="KM">Comoros</option>
    <option value="CG">Congo</option>
    <option value="CK">Cook Islands</option>
    <option value="CR">Costa Rica</option>
    <option value="CI">Cote d'Ivoire</option>
    <option value="HR">Croatia (Hrvatska)</option>
    <option value="CU">Cuba</option>
    <option value="CY">Cyprus</option>
    <option value="CZ">Czech Republic</option>
    <option value="DK">Denmark</option>
    <option value="DJ">Djibouti</option>
    <option value="DM">Dominica</option>
    <option value="DO">Dominican Republic</option>
    <option value="TP">East Timor</option>
    <option value="EC">Ecuador</option>
    <option value="EG">Egypt</option>
    <option value="SV">El Salvador</option>
    <option value="GQ">Equatorial Guinea</option>
    <option value="ER">Eritrea</option>
    <option value="EE">Estonia</option>
    <option value="ET">Ethiopia</option>
    <option value="FK">Falkland Islands (Malvinas)</option>
    <option value="FO">Faroe Islands</option>
    <option value="FJ">Fiji</option>
    <option value="FI">Finland</option>
    <option value="FR">France</option>
    <option value="FX">France, Metropolitan</option>
    <option value="GF">French Guiana</option>
    <option value="PF">French Polynesia</option>
    <option value="GA">Gabon</option>
    <option value="GM">Gambia</option>
    <option value="GE">Georgia</option>
    <option value="DE">Germany</option>
    <option value="GH">Ghana</option>
    <option value="GI">Gibraltar</option>
    <option value="GR">Greece</option>
    <option value="GL">Greenland</option>
    <option value="GD">Grenada</option>
    <option value="GP">Guadeloupe</option>
    <option value="GU">Guam</option>
    <option value="GT">Guatemala</option>
    <option value="GN">Guinea</option>
    <option value="GW">Guinea-Bissau</option>
    <option value="GY">Guyana</option>
    <option value="HT">Haiti</option>
    <option value="HN">Honduras</option>
    <option value="HK">Hong Kong</option>
    <option value="HU">Hungary</option>
    <option value="IS">Iceland</option>
    <option value="IN">India</option>
    <option value="ID">Indonesia</option>
    <option value="IR">Iran (Islamic Republic of)</option>
    <option value="IQ">Iraq</option>
    <option value="IE">Ireland</option>
    <option value="IL">Israel</option>
    <option value="IT">Italy</option>
    <option value="JM">Jamaica</option>
    <option value="JP">Japan</option>
    <option value="JO">Jordan</option>
    <option value="KZ">Kazakhstan</option>
    <option value="KE">Kenya</option>
    <option value="KI">Kiribati</option>
    <option value="KP">Korea, Democratic People's Republic of</option>
    <option value="KR">Korea, Republic of</option>
    <option value="KW">Kuwait</option>
    <option value="KG">Kyrgyzstan</option>
    <option value="LA">Laos</option>
    <option value="LV">Latvia</option>
    <option value="LB">Lebanon</option>
    <option value="LS">Lesotho</option>
    <option value="LR">Liberia</option>
    <option value="LY">Libyan Arab Jamahiriya</option>
    <option value="LI">Liechtenstein</option>
    <option value="LT">Lithuania</option>
    <option value="LU">Luxembourg</option>
    <option value="MO">Macau</option>
    <option value="MG">Madagascar</option>
    <option value="MW">Malawi</option>
    <option value="MY">Malaysia</option>
    <option value="MV">Maldives</option>
    <option value="ML">Mali</option>
    <option value="MT">Malta</option>
    <option value="MH">Marshall Islands</option>
    <option value="MQ">Martinique</option>
    <option value="MR">Mauritania</option>
    <option value="MU">Mauritius</option>
    <option value="YT">Mayotte</option>
    <option value="MX">Mexico</option>
    <option value="MD">Moldova, Republic of</option>
    <option value="MC">Monaco</option>
    <option value="MN">Mongolia</option>
    <option value="MS">Montserrat</option>
    <option value="MA">Morocco</option>
    <option value="MZ">Mozambique</option>
    <option value="MM">Myanmar</option>
    <option value="NA">Namibia</option>
    <option value="NR">Nauru</option>
    <option value="NP">Nepal</option>
    <option value="NL">Netherlands</option>
    <option value="AN">Netherlands Antilles</option>
    <option value="NC">New Caledonia</option>
    <option value="NZ">New Zealand</option>
    <option value="NI">Nicaragua</option>
    <option value="NE">Niger</option>
    <option value="NG">Nigeria</option>
    <option value="NU">Niue</option>
    <option value="NF">Norfolk Island</option>
    <option value="MP">Northern Mariana Islands</option>
    <option value="NO">Norway</option>
    <option value="OM">Oman</option>
    <option value="PK">Pakistan</option>
    <option value="PW">Palau</option>
    <option value="PA">Panama</option>
    <option value="PG">Papua New Guinea</option>
    <option value="PY">Paraguay</option>
    <option value="PE">Peru</option>
    <option value="PH">Philippines</option>
    <option value="PN">Pitcairn</option>
    <option value="PL">Poland</option>
    <option value="PT">Portugal</option>
    <option value="PR">Puerto Rico</option>
    <option value="QA">Qatar</option>
    <option value="RE">Reunion</option>
    <option value="RO">Romania</option>
    <option value="RU">Russian Federation</option>
    <option value="RW">Rwanda</option>
    <option value="KN">Saint Kitts and Nevis</option>
    <option value="LC">Saint LUCIA</option>
    <option value="WS">Samoa</option>
    <option value="SM">San Marino</option>
    <option value="ST">Sao Tome and Principe</option>
    <option value="SA">Saudi Arabia</option>
    <option value="SN">Senegal</option>
    <option value="SC">Seychelles</option>
    <option value="SL">Sierra Leone</option>
    <option value="SG">Singapore</option>
    <option value="SK">Slovakia (Slovak Republic)</option>
    <option value="SI">Slovenia</option>
    <option value="SB">Solomon Islands</option>
    <option value="SO">Somalia</option>
    <option value="ZA">South Africa</option>
    <option value="ES">Spain</option>
    <option value="LK">Sri Lanka</option>
    <option value="SH">St. Helena</option>
    <option value="PM">St. Pierre and Miquelon</option>
    <option value="SD">Sudan</option>
    <option value="SR">Suriname</option>
    <option value="SZ">Swaziland</option>
    <option value="SE">Sweden</option>
    <option value="CH">Switzerland</option>
    <option value="SY">Syrian Arab Republic</option>
    <option value="TW">Taiwan, Province of China</option>
    <option value="TJ">Tajikistan</option>
    <option value="TZ">Tanzania, United Republic of</option>
    <option value="TH">Thailand</option>
    <option value="TG">Togo</option>
    <option value="TK">Tokelau</option>
    <option value="TO">Tonga</option>
    <option value="TT">Trinidad and Tobago</option>
    <option value="TN">Tunisia</option>
    <option value="TR">Turkey</option>
    <option value="TM">Turkmenistan</option>
    <option value="TC">Turks and Caicos Islands</option>
    <option value="TV">Tuvalu</option>
    <option value="UG">Uganda</option>
    <option value="UA">Ukraine</option>
    <option value="AE">United Arab Emirates</option>
    <option value="GB">United Kingdom</option>
    <option value="US" selected>United States</option>
    <option value="UY">Uruguay</option>
    <option value="UZ">Uzbekistan</option>
    <option value="VU">Vanuatu</option>
    <option value="VE">Venezuela</option>
    <option value="VN">Viet Nam</option>
    <option value="VG">Virgin Islands (British)</option>
    <option value="VI">Virgin Islands (U.S.)</option>
    <option value="WF">Wallis and Futuna Islands</option>
    <option value="EH">Western Sahara</option>
    <option value="YE">Yemen</option>
    <option value="YU">Yugoslavia</option>
    <option value="ZM">Zambia</option>
    <option value="ZW">Zimbabwe</option>
</select></td>
            </tr>
            <tr>
              <td>Marital status</td>
              <td><select name="marry">
              <option value="%" selected="selected">Please select</option>
              <option value="Single">Single</option>
              <option value="In relationship">In a relationship</option>
              <option value="Married">Married</option>
              <option value="Divorced">Divorced</option>
            </select></td>
            </tr>
            <tr>
              <td>Education level</td>
              <td><select name="edu">
              <option value="%" selected="selected">Any</option>
              <option value="None">None</option>
              <option value="High School">High school</option>
              <option value="Bachelor">Bachelor</option>
              <option value="Master">Master or higher</option>
            </select></td>
            </tr>
          </table>
         
          <table width="463" border="0" class="demo" >
            <tr>
              <td colspan="8"><strong><br>
              Select at least 3 topics that interest you<br>
              </strong></td>
            </tr>
            <tr>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Animals</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Business</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Computer</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Dating</td>

            </tr>
            <tr>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Food</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Gaming</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Gambling</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Health</td>
            </tr>
            <tr>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Money</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Sport</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>TV/Movies</td>
              <td><input type="checkbox" NAME="checkbox" CLASS="checkbox"></td>
              <td>Mobiles</td>
            </tr>
                        <tr>
              <td colspan="8"><br><center>
                <p>
                  <input name="image" type="image" value="submitname" src="images/submit.gif" alt="SUBMIT!" width="203" height="48" border="0">
                </p>
                <p>Winners will be contacted directly by mail. </p>
              </center></td>
            </tr>
          </table>
        </form>
                </td>
  </tr>
</table>

</body>
</html>
Avatar billede dennisbjorn Juniormester
18. februar 2010 - 19:32 #1
måske mangler "return false" når du kalder funktionen:



<table width="500" border="0" class="form">
  <tr>
    <td><form name="checkbox_form" method="post" action="" onsubmit="return checkbox_checker();return false;">
Avatar billede majbom Novice
18. februar 2010 - 19:40 #2
alle dine checkboxes har samme navn og ingen value - hvordan kan du bruge det til noget som helst?
Avatar billede wisemind Nybegynder
18. februar 2010 - 23:17 #3
dennisbjorn: Mange tak for dit svar. Proevede med dit forslag, men den gaar stadig videre, efter at have alerted med navn er tomt.

splazz: Kan godt forstaa det ser maerkeligt ud, er stadig i javascript test fasen, foer jeg gaar videre til at rette ting som det - hvilket vel for dette problem er underordnet?
Avatar billede majbom Novice
19. februar 2010 - 01:50 #4
din fejl skyldes denne linje:

value.checkbox_form.name.select();

jeg går ud fra at du prøver at sætte markøren i feltet name?

så skal du gøre sådan her:

document.checkbox_form.name.focus();

og du bør sætte document. foran alle steder hvor du henviser til formen via navnet på den, da det ikke er alle browsere der regner med at det er document der er parent...
Avatar billede wisemind Nybegynder
19. februar 2010 - 13:12 #5
Hey splazz, 1000 tak for hjaelpen! nu virker det efter hensigten.

Smid et svar og pointene er dine :)

God weekend!
Avatar billede majbom Novice
19. februar 2010 - 16:29 #6
selv tak :)

og tak i lige måde...
Avatar billede majbom Novice
19. februar 2010 - 21:29 #7
tak for point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester