weixin_33686714 2014-07-16 11:37 采纳率: 0%
浏览 31

Ajax乘法表单提交

I have this app.js for my form from teamtreehouse blog I really liked it but i need tto use it for multiply forms including and a modal. I know that I should use $(this) but don't know where...

$(function() {

// Get the form.
var form = $('.ajax-contact');

// Get the messages div.
var formMessages = $('.form-messages');

// Set up an event listener for the contact form.
$(form).submit(function(e) {
    // Stop the browser from submitting the form.
    e.preventDefault();

    // Serialize the form data.
    var formData = $(form).serialize();

    // Submit the form using AJAX.
    $.ajax({
        type: 'POST',
        url: $(form).attr('action'),
        data: formData
    })
    .done(function(response) {
        // Make sure that the formMessages div has the 'success' class.
        $(formMessages).removeClass('text-error');
        $(formMessages).addClass('text-success');

        // Set the message text.
        $(formMessages).text(response);

        // Clear the form.
        $('#phone').val('');

    })
    .fail(function(data) {
        // Make sure that the formMessages div has the 'error' class.
        $(formMessages).removeClass('text-success');
        $(formMessages).addClass('text-error');

        // Set the message text.
        if (data.responseText !== '') {
            $(formMessages).text(data.responseText);
        } else {
            $(formMessages).text('Возникла ошибка и телефон не удалось отправить!');
        }
    });

});

});

  • 写回答

1条回答 默认 最新

  • weixin_33711641 2014-12-30 08:54
    关注

    I deleted the previous comments and introduced new.

    $(function() {
        // cache jQuery objects
        var $form = $('.ajax-contact'),
            $formMessages = $('.form-messages');
    
        $form.submit(function(e) {
            e.preventDefault();
    
            var $this = $(this); // context of form element
            // instead of $(this) you can use cached jquery object $form
            var formData = $this.serialize();
            // var formData = $form.serialize();
    
            $.ajax({
                type: 'POST',
                url: $this.attr('action'),
                data: formData
            })
            .done(function(response) {
                $formMessages.removeClass('text-error'); // cached jquery object
                $formMessages.addClass('text-success');
    
                $formMessages.text(response);
    
                $('#phone').val('');
    
            })
            .fail(function(data) {
                $formMessages.removeClass('text-success');
                $formMessages.addClass('text-error');
    
                if (data.responseText !== '') {
                    $formMessages.text(data.responseText);
                } else {
                    $formMessages.text('Возникла ошибка и телефон не удалось отправить!');
                }
            });
    
        });
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵