Проверка Jquery сталкивается с проверкой HTML

#html #jquery #validation

#HTML #jquery #проверка

Вопрос:

Я хочу использовать проверку jquery для простой формы, используя встроенный метод проверки, такой как required и email.

Вот моя форма

 <form id="setup-company" class="form-horizontal form-rest validator" action="{{$updatePath}}">
    <div class="form-group">
        <label for="name" class="col-sm-6 control-label" style="font-size: 12px;text-transform:uppercase">Nama Institusi *</label>
        <div class="col-sm-12">
            <input type="text" class="form-control" name="name" value="{{$company->name}}" style="width: 100%;" required>
        </div>
    </div>
    <div class="form-group">
        <label for="abbreviation" class="col-sm-6 control-label" style="font-size: 12px;text-transform:uppercase">Singkatan</label>
        <div class="col-sm-12">
            <input type="text" class="form-control" name="abbreviation" value="{{$company->abbreviation}}" style="width: 100%;">
        </div>
    </div>
    <div class="form-group">
        <label for="phone" class="col-sm-6 control-label" style="font-size: 12px;text-transform:uppercase">No. Telp</label>
        <div class="col-sm-12">
            <input type="number" class="form-control" minlength="10" maxlength="12" name="phone" value="{{$company->phone}}">
        </div>
    </div>
    <div class="form-group">
        <label for="email" class="col-sm-6 control-label" style="font-size: 12px;text-transform:uppercase">Email</label>
        <div class="col-sm-12">
            <input type="email" class="form-control" name="email" value="{{$company->email}}">
        </div>
    </div>
    <button style="float:right;" type="submit" class="btn btn-sm btn-success btn-raised rippler rippler-inverse edit-row">
        SIMPAN
    </button>
</form>
 

В javascript я инициирую проверку jquery следующим образом.

  $('.form-rest').unbind().submit(function(e) {
        e.preventDefault();
        var $form = $(this);
        // check if the input is valid
        if (!$form.valid())
            return false;
});
 

Но когда я пытаюсь это сделать, он показывает проверку HTML следующим образом

введите описание изображения здесь

Когда я заполняю недопустимый ввод для phone (который является третьим вводом), кажется, что проверка jquery работает правильно. И когда я пытаюсь заполнить пустой ввод для первого ввода, сообщение об ошибке пришло из проверки jquery следующим образом.

введите описание изображения здесь

В чем причина этого?

Ответ №1:

Наличие required атрибута вполне нормально. Вам просто нужно сообщить браузеру, что вы хотите пропустить проверку по умолчанию, добавив novalidate атрибут к элементу формы.

Атрибут novalidate является логическим атрибутом. Если он присутствует, он указывает, что данные формы (входные данные) не должны проверяться при отправке.