Как стать автором
Обновить

Комментарии 19

Кажется, уже у каждого есть свой jQuery плагин для асинхронной отправки форм
Больше плагинов, хороших и разных :)
Простите, но это довольно тривиально, а в данной реализации еще и небольшой минус в виде невалидных атрибутов.
Похожих плагинов уже существует 100500.
Возможно, я не наталкивался, скиньте ссылку
Киньте гиперссылки хотя бы на ту пару-тройку-другую из этих 100500, что представляются Вам наилучшими.
Ну это немного не то здесь требуется в коде вызывать функцию ajaxForm и нет загрузки файлов.
Суть данной статьи чтобы не писать js код вообще (или только в исключительных случаях), а только с сервера отправлять нужные ответы.
$("form").ajaxForm(); не?
да это работает, т.е. так я должен подписаться на клик по элементу и вызвать функцию $(«form»).ajaxForm(); и она отправится.
В моём случае не надо подписываться, отправляешь ты формы, либо ты кликаешь на элементе, загружаешь файлы.

Я не уверен, но по моему ajaxForm не делает кросдоменные запросы
Вы говорите про ajaxSubmit. А ajaxForm аяксифицирует форму (формы). Насчет кроссдоменных запросов тоже не уверен.
Да ты прав, я про ajaxSubmit написал, ajaxForm не сработает если контент будет добавлен динамически.
Окей,
$(document).on("submit", "form", function() { $(this).ajaxSubmit()} ));
Неплохой скрипт, форму отправляет.
Я предоставил своё виденье, постарался собрать все варианты, которые могли бы сократить код, где помимо ассинхронной отправки формы, есть отправка при клике на элемент, загрузка файлов при клике на кнопку.
И показал что можно сократить код, если правильно отсылать данные с сервера.
Метод, конечно интересный и имеет право на жизнь, но не сочтите за занудство, атрибуты «dropfile, jasync» выглядят как-то не по феншую.
Кажется будет правильнее использовать «data-dropfile, data-jasync». Поправьте, если я ошибаюсь.
Я на самом деле думал как назвать и изначально назвал атрибут async, потом думал назвать data-async, ещё думал название поместить в глобальную переменную.
Но я остановился на jasync, хоть это и не валидно.
Если скрипт будет полезен, то перенесу название в глобальную переменную, чтобы ни у кого не возникали вопросы.
А мне идея понравилась, я обеими руками за декларативность там, где это возможно.
Но вот реализация…

Взять хотя бы имена событий с точкой, что противоречит идеолгоии событий в jQ — там точки призваны отделять event name от namespaces, а у вас obj.trigger( 'jasync.uploadProgress', ...) — не по феншую — лучше было б дефисы использовать тогда.

И довольно странно смотрятся рядом нативное создание XMLHttpRequest и вот это $( '<div></div>' ).

Я это к чему, выложите на GitHub, организуйте приём пулреквестов и, возможно, выйдет довольно хорошая библиотека как по идее, так и по реализации.
obj.trigger( 'jasync.uploadProgress', ...)
jasync — namespaces
uploadProgress — события

$.ajax — мне не подошёл. Был вынужден использовать XMLHttpRequest
На счёт выложите на GitHub, скрипт свободно распространяется, можете дорабатывать и вылаживать где угодно, без ссылок на мой скрипт и подобной ерунды.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории