Остановка формы для отправки - PullRequest
0 голосов
/ 14 ноября 2010

У меня есть форма, которая при отправке должна видеть, нет ли в текстовой области текста или текста заполнителя.

если она не отправляет ее.что-то вроде проверки.Я не могу остановить отправку формы.

$(document).ready(function () {
    var options = {
        target: '.user-status',
        // target element(s) to be updated with server response 
        beforeSubmit: showRequest,
        // pre-submit callback 
        success: showResponse,
        // post-submit callback 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        resetForm: true // reset the form after successful submit 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    };

    $('#updateStatus').submit(function () {
        $(this).ajaxSubmit(options);
        return false; // prevent a new request
    });

    function showRequest(formData, jqForm, options) {

        var textbox = $('#StatusMessageMessage').val();
        if ((textbox == '') || (textbox == "What have you been eating ?")) {
            alert(text);
            return false;
        } else {
            $('#StatusMessageMessage').attr('disabled', true);
        }

    }

    function showResponse(responseText, statusText, xhr, $form) {
        $('#StatusMessageMessage').attr('disabled', false);
    }

    statusMEssagebox();


});



function statusMEssagebox() {
    var textholder = $('#StatusMessageMessage').val();

    $('#StatusMessageMessage').focus(function () {
        if ($(this).val() == textholder) $(this).val("");

        $(this).animate({
            "height": "48px",
        }, "fast");
        $('.share').slideDown("fast");
        $(this).TextAreaExpander(48, 75);

    });

    $('#StatusMessageMessage').blur(function () {
        if ($(this).val() == "") {
            $(this).val(textholder);
            $('.share').slideUp("fast");
            $(this).animate({
                "height": "18px",
            }, "fast");
        }
    });
}

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Я вижу, что вы используете плагин jquery form для изменения вашей формы.В документации есть пример , иллюстрирующий, как этого добиться элегантным способом.Вам не нужно подписываться на событие .submit формы и отправлять его вручную, используя .ajaxSubmmit.Вы можете просто попробовать это:

$(function() {
    $('#updateStatus').ajaxForm({ 
        beforeSubmit: function(formData, jqForm, options) {
            var value = $('#StatusMessageMessage').val();
            if (value == '' || value == 'What have you been eating ?') {
                return false;
            }
        }
    });
});
1 голос
/ 14 ноября 2010

Вы используете оператор равенства вместо сравнения.

Это:

if ((textbox = '') || (textbox = "What have you been eating ?")) {
Problem -----^

Должно быть:

if (textbox == '' || textbox == "What have you been eating ?") {

Вы также можете посмотреть, как отправить форму через Ajax с помощью jQuery:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...