Javascript serialize form

When you can not use javascript libraries like jQuery, MooTools, Dojo, YUI or Prototype, and their built-in functions, but still want a quick and easy way to serialize forms, you need a function like that one. This is the reason to write this function. Get the code or view demo.

function serialize (form) {
    if (!form || form.nodeName !== "FORM") {
        return;
    }
    var i, j, q = [];
    for (i = form.elements.length - 1; i >= 0; i = i - 1) {
        if (form.elements[i].name === "") {
            continue;
        }
        switch (form.elements[i].nodeName) {
        case 'INPUT':
            switch (form.elements[i].type) {
            case 'text':
            case 'hidden':
            case 'password':
            case 'button':
            case 'reset':
            case 'submit':
                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
                break;
            case 'checkbox':
            case 'radio':
                if (form.elements[i].checked) {
                    q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
                }                      
                break;
            case 'file':
                break;
            }
            break;
        case 'TEXTAREA':
            q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
            break;
        case 'SELECT':
            switch (form.elements[i].type) {
            case 'select-one':
                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
                break;
            case 'select-multiple':
                for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) {
                    if (form.elements[i].options[j].selected) {
                        q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].options[j].value));
                    }
                }
                break;
            }
            break;
        case 'BUTTON':
            switch (form.elements[i].type) {
            case 'reset':
            case 'submit':
            case 'button':
                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
                break;
            }
            break;
        }
    }
    return q.join("&");
}

jQuery Tic Tac Toe game

jTTT is javascript Tic Tac Toe game build on jQuery and Raphael JS

Tic Tac Toe game

jMem – Javascript Memory game

jMem is Javascript Memory game, written in pure javascript and use canvas with help of Raphael JS.

Javascript Memory Game

jTrack – jQuery Time tracking App

jTrack is simple jQuery Time tracking app, without any use of database, cookies or sessions. Only HTML, CSS, jQuery, DOMCached plugin and jQuery-JSON plugin. Our jQuery time tracking application rely on localStorage, which is a part of the Web Storage specification.

jTask works in all modern browsers including Chrome 4+, Firefox 2+, Safari 4+, Opera 10.5+, IE6+.

jTrack - Time tracking app

jTrack - jQuery Time tracking app

jTrack - Time tracking app

jTrack - jQuery Time tracking app

Follow me! Twitter | LinkedIn | RSS Feed

jKill – The jQuery Mob game

Една игра която бях написал преди месеци, веднага след jZmei – The jQuery Snake game, но поради ред причини не бях публикувал. Играта е написана на Javascript с помоща на jQuery единствено и само за забавление. Играй jKill – The jQuery Mob game – бъди за 5 минути гангстер. Има и експериментална версия за Facebook.

jKill

jKill - javascript game

Следвай ме в Twitter или се абонирай за моя RSS Feed за да научиш кога ще има нова версия на jKill играта.

jQuery FriendURL plugin 1.5

Излезе нова версия на jQuery FriendURL plugin. Плъгина е подходящ за използване в CMS системи, блогове, форуми и т.н. за образуване на SEO friendly URLs, т.е. разбираеми за търсещите машини връзки (хиперлинкове). В новата версия (1.5) се поддържа транслитерация на българските букви с латински. Какво е транслитерация и какви са нейните вариации вижте в Wikipedia и Министерството на държавната администрация и административната реформа

jQuery FriendURL plugin

jQuery FriendURL plugin

Версия 1.0 вижте jQuery SEO friendly url plugin

jSnake – The jQuery Snake Game

Моята версия на популярната видео игра Snake (Змията) от миналото, чийто оригинал излиза в далечната 1976, а по-късно става масова от телефоните на Nokia. Играта има версии на Windows, Atari, Mac OS, PlayStation, MS DOS, iPhone, iPod, Nintendo, XBox, KDE. Повече за историята й в Wikipedia.

Играта е написана на JavaScript, като съм използвал jQuery.

ИГРАЙ jSNAKE

jSnake - The jQuery Snake Game

Следвай ме в Twitter или се абонирай за моя RSS Feed за да научиш кога ще има нова версия на jSnake играта.

Предстои обновяване на BG-News.org (Новините днес)

Скоро започнах с работата по обновяването на BG-News.org. Отдавна се канех да го сторя, но ето че дойде и неговото време :) Ре-дизайнът се майстори от Ивайло Бобчев, програмирането ще си е мое дело. Предвиждам някои нови функционалности които се надявам да бъдат полезни, като някои от тях са: възможност за публикуване на новина от регистрипани потребители, нова по-добра навигация, настройка на потребителския интерфейс, API за девелопъри…

jQuery UniqueField plugin

Този плъгин за jQuery проверява дадено поле в база от данни за дадена стойност посредством ajax, и при съвпадение променя DOM дървото като добавя стилизирано със CSS съобщение за това. Демо и линк за сваляне: jQuery UniqueField plugin.

jQuery UniqueField plugin

jQuery UniqueField plugin

jQuery TagCloud plugin

Плъгин за jQuery, който добавя тагове или ключови думи към публикация, коментар или друг запис. Тук съм използвал кода от друг мой плъгин: FriendURL plugin, а концепцията е от WordPress.

Вижте демото и свалете jQuery TagCloud плъгин от тук.

Сорс кода на плъгина се хоства в GitHub на адрес: http://github.com/riverside/tagcloud/tree/master

jQuery TagCloud plugin

jQuery TagCloud plugin