Форма Jquery | Подтвердите форму, прежде чем появится панель загрузки.

0

Плагины: Jquery.form.js | jquery.js

Объяснение Я хотел бы проверить название и описание до того, как панель загрузки будет отображаться. В php, который Jquery представляет мне, я проверяю, что заголовок имеет более 3 символов и менее 80 и т.д. Если вся эта информация верна, сценарий загрузки будет запущен, но если это не будет php, он умрет и появится соответствующий ответ об ошибке.

Проблема заключается в том, что панель загрузки показывает ход загрузки всего запроса, а не только процесс загрузки, это нормально, но прежде чем я хочу, чтобы панель загрузки отображалась, я хотел бы иметь возможность проверять текстовые поля в php.

Если вы думаете, что это можно было бы сделать лучше, не могли бы вы рассказать подробнее.

JS

function noteUpload() {
    var options = {
        beforeSend: function() {
            // set everything to 0
        },
        data: 
        {
            title: $('#uploadNoteTitle').val(),
            description: $('#uploadNoteDescription').val()
        },
        uploadProgress: function(event, position, total, percentComplete) {
            //Over here I show the loading bar and let it update with "percentComplete"
        },
        success: function() {

        },
        complete: function(response) {
            //Over here i receive the response and show the error messages if there are any.
        },
        error: function() {
            console.log("error");
        }
    }
};

Большое спасибо!

обкрадывать

Теги:
forms

2 ответа

0

Вам нужно будет добавить некоторую форму проверки в пределах

beforeSubmit

Перезвони. Если это не удается, просто верните false, и форма не будет отправлена. В качестве примера можно сказать, что вы используете jquery.validate(http://bassistance.de/jquery-plugins/jquery-plugin-validation/)

var options = {    
    beforeSubmit: function(arr, $form, options) {              
        if ( !$form.valid() ) {
            return false;
        }
    },
    ...
}

Если вы настаиваете на проверке на стороне сервера, добавьте метод AJAX для обратного вызова.

var options = {    
    beforeSubmit: function(arr, $form, options) {    
        var valid = false;  

        $.ajax({
            type : 'POST',
            url : 'validation.php',
            async: false,
            data : $form.serialize(),
            success : function(isValid) {
                if ( isValid) {
                    valid = true
                }
            }
        }).then(function(){
            if ( !valid ) {
                return false;
            }           
        });
    },
    ...
}   
  • 0
    Сможет ли пользователь отредактировать javascript, чтобы проверка не проводилась?
  • 0
    Да, так что, возможно, альтернативой будет обновление действительной переменной для чтения сеанса PHP. например, <? php echo 'var valid = "' .json_encode ($ _ SESSION ['valid']). '";'; Затем, если форма верна, обновите сессию на PHP
0

Создайте функцию для проверки заголовка, описания и конца функции, если проверки истинны, вызовите функцию noteUpload:

function validateForm(){
    // validate script
    if(true == validation){
          noteUpload()
    }
}

Ещё вопросы

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