Контакты

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (15)

Лучшие ответы пользователя

Все ответы (19)
  • Как мне применить код для каждой формы на сайте?

    xamd
    @xamd
    javascript-ninja
    Вот. Немного подправил код и зделал его jslint и jshint-free.
    Для его использования, добавьте класс js-form для всех форм, использующих этот сценарий, а так же js-phone для всех полей для ввода телефона.

    P.S. Катал на коленке, если не работает или есть вопросы - дайте знать, постараюсь помочь разобраться.

    $(document).ready(function() {
        "use strict";
    
        var form = $(".js-form");
    
        form.on("submit", function(e) {
            var submit = form.find(".js-submit");
    
            // Если Вам приходится генерировать HTML
            // или модифицировать какие-либо текстовые значения,
            // всегда лучше вынести их в константы
            var SEND = "Отправить заявку";
            var SENDING = "Идет отправка...";
            var SENDING_COMPLETE = "Заявка отправлена";
    
            function validatePhone() {
                var phone = form.find(".js-phone");
    
                try {
                    if (phone.val().length === 0) {
                        throw Error("Phone number can't be empty");
                    }
                } catch (e) {
                    phone.css({
                        "border-color": "#ff4500"
                    });
    
                    setTimeout(function() {
                        // Возвращаем значение цвета обводки в
                        // предыдущее состояние
                        phone.css({
                            "border-color": "auto"
                        });
                    }, 500);
    
                    return false;
                }
    
                return true;
            }
    
            if (validatePhone() === true) {
    
                var request = $.ajax({
                    url: "send.php",
                    method: "POST",
                    beforeSend: function() {
                        submit.attr({
                            "disabled": true,
                            "value": SENDING
                        });
                    }
                });
    
                request.done(function(response) {
                    response = $.trim(response);
    
                    if (response === "sent") {
                        submit.attr({
                            "value": SENDING_COMPLETE
                            // Возможно, здесь стоит убрать флаг disabled?
                        });
                    } else {
                        // По идее, если что-то идет не так, Ваш скрипт должен
                        // выкидывать исключение, которое вы бы обрабатывали в
                        // методе fail. Но пока вы этого не сделали, придется писать через
                        // if-else
                        submit.attr({
                            "disabled": false,
                            "value": SEND
                        });
                    }
                });
    
                request.fail(function(error) {
                    // Когда PHP скрипт будет выкидывать ошибку, вы будете обрабатывать её здесь.
                    console.error(error);
                });
            }
    
            // Предотвращаем стандартную обработку форму
            e.preventDefault();
        });
    });
    Ответ написан
    Комментировать
  • Нужно ли включать маршрутизатор в изоморфную часть?

    xamd
    @xamd
    javascript-ninja
    Прошу прощения, но я не понимаю, о каких проблемах с получением данных Вы говорите в первом варианте. Выглядит всё не так страшно: каждый React класс может иметь статические методы, в которые вы можете вынести вызов функций, которые сделают fetch ваших данных. Вы можете посмотреть как я это сделал у себя в коде.

    И вот по поводу 404.
    Ответ написан
    2 комментария
  • Как структуризировать процесс обучения?

    xamd
    @xamd
    javascript-ninja
    Я скажу вам так: даже если вы изучите все существующие на свете книги по самым лучшим методологиям, практического опыта вам не заменит ничего. Теоретические знания - это важно, они предотвращают большую часть говнокода. Особенно в этом помогают шаблоны проектирования. Но вопрос был немного не в этом, поэтому возвращаюсь к теме: я бы рекомендовал вам купить подписку на ресурсы а-ля codeschool и т.п., такие ресурсы помогают получить правильную базу. Как ни крутите, но лучший расклад - это "знать по чуть-чуть", на большее вы не сможете рассчитывать в первое время. Я искрине желаю вам удачи, и верю, что у вас всё получится!
    Ответ написан
    1 комментарий
  • Nginx - как переписать url?

    xamd
    @xamd
    javascript-ninja
    server {
        # Порт
        listen 80;
    
        # Имя сервера
        server_name host.com;
    
        # Путь до статики
        root /var/www/;
        
        # Все файлы, которые будут совпадать по маске со сл. рег. выр., будут
        # обслуживаться nginx: сначало будет запрос как к файлу (например, host.com/js/main.js),
        # если файла не будет, то запрос будет переформирован как к директории (host.com/js/main.js/),
        # и если по прежнему ничего не найдено, вернется 404 ошибка
        location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|3gp|mp4)$ {
            try_files $uri $uri/ =404;
        }
    
        # Все остальные запросы, котоыре не подходят по маске статических файлов, описанных выше,
        # будут перенаправлены на localhost.
        # Первая строчка - адрес перенаправления, вторая - устанавливает заголовок Host. Если вы используете
        # выделенный сервер и он используется только под один проект - её можно опустить.
        location / {
            proxy_pass http://localhost:1001;
            proxy_set_header Host $host;
        }
    }


    Более подробно про proxy_pass хорошо написано в официальной документации проекта nginx или же в статье про начало работы с nginx
    Про Header заголовок можно прочитать здесь (к сожалению, на русском нормального изложения материала не нашел, может кто поправит?)

    Всех благ, и успехов в изучении nginx!
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (2)