jQuery: скрипт не препятствует запуску функции отправки, когда в форме есть ошибки

0

По сути, я пытаюсь, чтобы моя форма очищала все поля ввода для отправки, если значения по умолчанию все еще присутствуют. Затем, если значения по умолчанию все еще присутствуют, процесс отправки останавливается. Форма очищает поля в submit, но не останавливает выполнение кнопки отправки, как это предполагается. Пожалуйста, помогите мне в этом. Я написал это сам и все еще пытаюсь понять, почему он не работает.

Скрипт jQuery Ниже:

<script type="text/javascript" >
 $(document).ready(function(){
    $(".forms").each(function(){
        var DefaultValue = $(this).value;
    $("#Form_1").submit(function(){
        if ( CheckInput() == "empty" ){
                 return false;
              }
    }); 
    function CheckInput(){
        var x = '';
        $(".forms").each(function(){
        if ($(this).value == DefaultValue){
             this.value = '';
             var y = "empty";
             return y;
          }
        x = y;
        return x;   
      });
    }
    });
 });
</script>

Код HTML ниже:

      <form id="Form_1">
      <table>
              <tr>
                  <td>
                      <table cellpadding="2" cellspacing="3" width="500px">
                          <tr>
                              <td>
                              <div class="InputContainer">
                                  <input  name="FirstName" value="First Name" class="forms" type="text"required="true"  ></input>
                                  <div class="InfoBlurp">First Name<div class="InfoTip"></div></div></div>
                              </td>
                              <td>
                              <div class="InputContainer">
                                  <input  name="BirthDate" value="Birth Date(MM/DD/YYYY)" class="forms" type="text" required="true" ></input>
                                  <div class="InfoBlurp">Birth Date(MM/DD/YYYY)<div class="InfoTip"></div></div></div>
                              </td>
                              <td>
                              <div class="InputContainer">
                                  <input  name="Email" value="[email protected]" validType="email" class="forms" type="text" required="true"/></input>
                                  <div class="InfoBlurp">[email protected]<div class="InfoTip"></div></div></div>
                              </td>
                          </tr>
          </table>
          <input id="Button_1"  class="topopup" type="submit" value="" style="background-color: #FFFFFF; border:none; cursor:pointer;">
          </form> 
Теги:
forms

1 ответ

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

Ваш метод checkInput ничего не возвращает, вы возвращаете значения из каждой функции обратного вызова, а не из метода CheckInput.

$(document).ready(function () {
    $(".forms").each(function () {
        var DefaultValue = $(this).value;
        $("#Form_1").submit(function () {
            if (CheckInput() == "empty") {
                return false;
            }
        });

        function CheckInput() {
            var x = '';
            $(".forms").each(function () {
                if ($(this).value == DefaultValue) {
                    this.value = '';
                    x = "empty";
                    //return false to stop further iteration of the loop
                    return false;
                }
            });
            return x;
        }
    });
});
  • 0
    Спасибо! Вы были абсолютно правы в этом. Я не могу поверить, что я не уловил это. Спасибо, что помогли мне решить это. Ты обалденный!!

Ещё вопросы

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