Кнопка отправки формы не будет проверять поля ввода формы при появлении запроса на продолжение отправки формы

0

У меня есть форма на моей веб-странице на www.thetotempole.ca и, например, у нее есть текстовое поле почтового индекса и почтового индекса, и если пользователь не вводит правильный почтовый индекс, форма отображает всплывающее сообщение о том, что zip/почтовый индекс недействителен. Хотя, когда пользователь нажимает submit, я хочу, чтобы он отображал подтверждение, спрашивающее, действительно ли они хотят отправить форму. Это мешает проверке входного текстового поля (IE - почтовому шифру почтовым индексом) каким-то образом, и заканчивает тем, что вообще не проверяет текстовые поля. Любая помощь приветствуется. Спасибо!!

HTML:

<html>
   <head>
      <script>
         function validate()
         {
            var myform = document.getElementById("form1");
            myform.fname.style.backgroundColor = "white";
            myform.lname.style.backgroundColor = "white";
            myform.address.style.backgroundColor = "white";
            myform.city.style.backgroundColor = "white";
            myform.provstate.style.backgroundColor = "white";
            myform.country.style.backgroundColor = "white";
            myform.postalzip.style.backgroundColor = "white";
            console.log("form object: " + myform);
            if (myform.fname.value == "")
            {
               alert("First Name must have a value");
               myform.fname.focus();
               myform.fname.style.backgroundColor = "red";
               return false;
            }
            if (myform.lname.value == "")
            {
               alert("Last Name must have a value");
               myform.lname.focus();
               return false;
            }
            if (myform.address.value == "")
            {
               alert("Address must have a value");
               myform.address.focus();
               return false;
            }
            if (myform.postalzip.value == "")
            {
               alert("Postal/Zip Code must have a value");
               myform.postalzip.focus();
               return false;
            }
            else
            {
               //var regex = new RegExp();
               var regex = /^([a-z]\d[a-z]\s?\d[a-z]\d)|(\d{5}(\s?\d{4})?)$/i;
               myform.postalzip.value.toUpperCase();
               if (!regex.test(myform.postalzip.value))
               {
                  alert("Postal/Zip Code has invalid format");
                  myform.postalzip.focus();
                  return false;

               }
            }

            return true;
         }
      </script>
   </head>
   <body>
      <form id="form1">
         First Name:<input type="text" name="fname" /><br />
         Last Name:<input type="text" name="lname" /><br />
         Address:<input type="text" name="address" /><br />
         City:<input type="text" name="city" /><br />
         Province/State:<input type="text" name="provstate" /><br />
         Country:<input type="text" name="country" /><br />
         Postal/Zip Code:<input style="text-transform: uppercase;" type="text" name="postalzip" /><br />
         <input type="submit" onclick="return confirm('Do you really want to continue?')" value="Send" />
         <input type="reset" onclick="return confirm('Do you really want to reset?')" value="Reset" />

      </form>
   </body>
</html>
  • 0
    Ваша ссылка не работает: (. Похоже, вы не вызываете validate() во фрагменте кода ...
  • 0
    Если я что-то упустил, я не вижу, где вы на самом деле вызываете функцию проверки. Из того, что я вижу, проще всего создать две уникальные функции для двух событий onclick. Затем обработайте подтверждение внутри функции (так как подтверждение возвращает значение, вы можете выполнять дальнейшие операции на основе возврата).
Теги:
forms

1 ответ

0
Лучший ответ

Быстрое исправление:

<input type="submit" onclick="return (validate() && confirm('Do you really want to continue?'))" value="Send" />
  • 0
    Работает хорошо, спасибо

Ещё вопросы

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