Моя проверка формы javascript не работает

0

Я пытаюсь проверить форму, но когда я нажимаю кнопку отправки, она ничего не делает... Я хочу, чтобы она отправила меня на следующую страницу, которая является game.html.

HTML:

<!--[if IEMobile]>
<link rel="stylesheet" type="text/css"
href="/styles/mobile.css" media="screen"/>
<![end if]-->

</head>
<body>
<img class="notmobile" id="imgtop1" src="image/card10.jpg"> 
<img class="notmobile" id="imgtop2" src="image/card11.jpg">
<img class="notmobile" id="imgtop3" src="image/card12.jpg">
<img class="notmobile" id="imgtop4" src="image/card13.jpg">
<img class="notmobile" id="imgtop5" src="image/card1.jpg">
<img class="notmobile" id="imgleft1" src="image/back.jpg">
<img class="notmobile" id="imgleft2" src="image/back.jpg">
<img class="notmobile" id="imgleft3" src="image/back.jpg">
<img class="notmobile" id="imgleft4" src="image/back.jpg">
<img class="notmobile" id="imgleft5" src="image/back.jpg">
<img class="notmobile" id="imgright1" src="image/back.jpg">
<img class="notmobile" id="imgright2" src="image/back.jpg">
<img class="notmobile" id="imgright3" src="image/back.jpg">
<img class="notmobile" id="imgright4" src="image/back.jpg">
<img class="notmobile" id="imgright5" src="image/back.jpg">

<div id="title"> <h1> Grand Palace Casino </h1> </div>
<div id="content"> 
<div id="formbox">
<fieldset>
<form id="fback" name="fback" method="get" action="game.html" onsubmit="return validateForm();">

<label class="form"> First name: </label> <br />
<input type="text" maxlength="30" size="30" name="fname" id="fname" /> <br /><br />

<label class="form"> Last name: </label>  <br />
<input type="text" maxlength="30" size="30" name="lname" id="lname"/> <br /><br />

<label class="form"> Phone number: </label> <br />
<input type="text" maxlength="30" size="30" name="pnum" id="pnum"/> <br /><br />

<label class="form"> Postal code: </label> <br />
<input type="text" maxlength="30" size="30" name="postCode" id="postCode"/> <br /><br />

<label class="form"> Starting amount of money: </label> <br />
<input type="text" maxlength="30" size="30" name="startMoney" id="startMoney"/> <br /><br />

<input name="button" type="button" id="button" value="Submit" />

</form>
</fieldset>




</div>



</div>
</body>
</html>

Javascript

// JavaScript Document
var $ = function(id) { return document.getElementById(id); }

function validateForm(){
    var nextPage = true;
    var regFName = /^([A-Z])[a-z]{1,20}$/;
    var regLName = /^([A-Z])[a-z]{1,30}$/;
    var regPnum = /^\d{3}\-\d{3}\-\d{4}$/;
    var regPostCode = /^[A-Za-z]{1}\d{1}[A-Za-z]{1} \ *\d{1}[A-Za-z]{1}\d{1}$/;
    var myMoney = $("startMoney").value;
    var regMoney = /[\.\,]/;
    document.fback.postCode.value = document.fback.postCode.value.toUpperCase();

    if ($("fname").value == "")
    {
        alert ("Enter your first name");
        nextPage = false;
    }

    else if (!$("fname").value.match(regFName))
    {
        alert ("You must capitalize your first character, and then the rest are lower-case. Only letters allowed. E.G: Charlie");
        nextPage = false;
    }

    else if ($("lname").value == "")
    {
        alert ("Enter your last name");
        nextPage = false;
    }

    else if (!$("lname").value.match(regLName))
    {
        alert ("You must capitalize your first character, and then the rest are lower-case. Only letters allowed. E.G: Kaing");
        nextPage = false;
    }

    else if ($("pnum").value == "")
    {
        alert ("Enter your phone number");
        nextPage = false;
    }

    else if (!$("pnum").value.match(regPnum))
    {
        alert ("You must use numbers only. Enter your phone in the following format: ###-###-#### E.G: 613-600-6991");
        nextPage = false;
    }

    else if ($("postCode").value == "")
    {
        alert ("Enter your postal code");
        nextPage = false;
    }

    else if (!$("postCode").value.match(regPostCode))
    {
        alert ("Enter your postal code in the following format: ANA NAN");
        nextPage = false;
    }

    else if ($("startMoney").value == "")
    {
        alert ("Enter your starting amount of money");
        nextPage = false;
    }

    else if (isNaN(myMoney) || parseInt(myMoney) < 5 || parseInt(myMoney) > 5000 || $("startMoney").value.match(regMoney))
    {
        alert ("You must enter money between 5$ and $5000. Only numbers allowed. No cents. E.G: 5000");
        nextPage = false;
    }
    nextPage = true;
}
  • 0
    Проверьте журнал консоли javascript. Также для быстрой отладки, работающей со всеми навигаторами, добавьте оповещения внутри вашей функции chekform, чтобы определить, где она останавливается.
Теги:

2 ответа

2

Ваша функция ничего не возвращает, а поскольку @fizz заявила, что ваш тип ввода должен быть type = "submit", а не "button".

...
else if (isNaN(myMoney) || parseInt(myMoney) < 5 || parseInt(myMoney) > 5000 || $("startMoney").value.match(regMoney))
{
alert ("You must enter money between 5$ and $5000. Only numbers allowed. No cents. E.G: 5000");
nextPage = false;

}
return nextPage;
}
  • 1
    Не гарантировал свой ответ, но ваша кнопка submit должна быть типа button submit не button . Иначе он не onsubmit обработчик onsubmit .
0

В jquery для доступа к идентификатору синтаксиса элемента $ ("# elementID") и для получения значения элемента используется val() fn.

ех.

   if ($("#fname").val() == "")
{
    alert ("Enter your first name");
    nextPage = false;
}

var myMoney = $("#startMoney").value;
  • 0
    Включите библиотеку Jquery для доступа к объекту jquery.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню