• Как запретить отправку формы, если цикл вернул false?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Я лично не совсем понял как у вас отрабатывает представленный пример. Есть два способа повесить хендлер на событие.
    Первый, проприетарный :
    jQuery('form').on('submit',function(e){
         e.preventDefault(); //Отменили нативное действие
         (e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
    }

    И второй, через алиас:
    jQuery('form').submit(function(){
    return false; //Отменили нативное действие
    });

    А у вас что-то среднее получилось.
    Кроме того почему не сделать так:
    jQuery('form').on('submit',function(e){
        var flag = true, 
            inputs = jQuery('input:not([type="submit"])',this); // Вторым аргументом указываем где искать
        inputs.each(function(){
            if(jQuery(this).val() == ''){
                flag = false;
            }
        });
        if(flag){
              /* Ajax запрос */
            alert('Запрос!');
         } else {
            alert('Заполни меня!!!');
         }
         e.preventDefault(); //Отменили нативное действие
         (e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
    });

    Рабочий пример
    Ответ написан
    5 комментариев
  • Как с помощью jQuery отправить форму?

    samoilenkoevgeniy
    @samoilenkoevgeniy
    Lead Full-Stack Web Developer
    Гуглите ajax отправка формы

    Примерный код:
    function send_form(form_id) {
        var form = $('#'+form_id);
        var msg   = form.serialize();
        $.ajax({
            type: 'POST',
            url: '../handlers/hSentEmailCall.php', // Обработчик собственно
            data: msg,
            success: function(data) {
                // запустится при успешном выполнении запроса и в data будет ответ скрипта
            },
            error:  function(){
                alert('Ошибка!');
            }
        });
    
    }


    Запускать при помощи onclick:
    <a href="#" class="add" onclick='send_form('add')'>Добавить</a>
    Ответ написан
    Комментировать
  • Django response в формате json?

    @Chebaa Автор вопроса
    Самое простое решение
    ingredients = Food.objects.values('id', 'title').filter(title__icontains=name)
    return JsonResponse({'ingredients': list(ingredients)})
    Ответ написан
    Комментировать
  • Как в React осуществить render в цикле?

    RubaXa
    @RubaXa
    render() {
      return (
        <div>
           ${Array.from({length: 5}).map((_, idx) => <div>{idx}</div>)}
        </div>
      );
    }
    
    // или
    
    render() {
      const list = [];
      for (let idx = 0; idx < 5; idx++ ){
         list.push(<div>{idx}</div>);
      }
      return <div>${list}</div>;
    }
    Ответ написан
    Комментировать
  • Как использовать useStore, useSelector, useDispatch hook?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. useDispatch - получение функции store.dispatch в компоненте. Раньше для вызова action функциональный компонент приходилось оборачивать в вызов connect:
    const Foo = ({ dispatch }) => {
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default connect()(Foo);


    Сейчас:
    const Foo = () => {
      const dispatch = useDispatch();
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default Foo;


    2. useSelector - маппинг значения из store.
    Раньше:
    const Foo = ({ value }) => {
      return (
        <Bar value={value} />
      );
    };
    
    const mapStateToProps = state => ({
      value: state.value,
    });
    
    export default connect(mapStateToProps)(Foo);


    const Foo = () => {
      const value = useSelector(state => state.value);
    
      return (
        <Bar value={value} />
      );
    };
    
    export default Foo;


    3. useStore - получение store целиком:
    const valueSelector = state => state.value;
    
    const Foo = () => {
      const { dispatch, getState, subscribe } = useStore();
      const value = valueSelector(getState());
      
      useEffect(() => subscribe(console.log), []);
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} value={value} />
      );
    };
    
    export default Foo;

    Вряд ли useStore вам, действительно, понадобится на практике.
    Ответ написан
    Комментировать
  • Как считать текстовый файл с помощью Javascript?

    coderisimo
    @coderisimo Куратор тега JavaScript
    Попробуйте вот так :

    function readTextFile(file)
    {
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function ()
        {
            if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
                {
                    var allText = rawFile.responseText;
                    alert(allText);
                }
            }
        }
        rawFile.send(null);
    }
    
    
    readTextFile("file:///C:/your/path/to/file.txt");
    Ответ написан
    1 комментарий
  • Vue, как я могу использовать Vue I18n в routre?

    potapchino
    @potapchino
    у вас порядок инициализации неправильный. разбейте лучше все по файлам

    // i18n.js
    import Vue from 'vue'
    import VueI18n from 'vue-i18n'
    import english from '@/lang/english.js'
    import russian from '@/lang/russian.js'
    
    Vue.use(VueI18n)
    
    let messages = {
        en : english,
        ru : russian,
    }
    
    export default new VueI18n({
        //locale: 'ru',
        locale: window.localStorage.Language || 'ru',
    
        fallbackLocale: 'ru',
        messages
    })


    // router.js
    ...
    import i18n from '@/path/to/i18n.js'
    ...
    {
        path: '/about',
        component: About,
        meta: { title: i18n.t('about') }
    }


    // main.js
    import Vue from 'vue'
    import App from './App'
    import Vuetify from 'vuetify'
    import router from './router'
    import axios from 'axios'
    import store from './store';
    import i18n from '@/path/to/i18n.js'
    
    Vue.config.productionTip = false
    
    Vue.use(Vuetify)
    
    Vue.axios = Vue.prototype.$http = axios.create({
        baseURL: 'http://localhost:5000/api'
    })
    
    
    /* eslint-disable no-new */
    new Vue({
        el: '#app',
        i18n,
        router,
        store,
        components: { App },
        template: '<App/>',
        created() {
          this.$vuetify.theme.primary = '#01579B'
        }
    })
    Ответ написан
    24 комментария
  • Не могу понять в чем проблема с Vuex, пишет Error in render: "TypeError"?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Вот что заставляет постить код картинками? Капец...
    По делу: напишите так -
    <span v-if="loadProduct">{{ loadProduct.price }}</span>
    Ответ написан
    Комментировать