@deepin

Есть ли альтернативный синтаксис js?

let submit = true;
    $('#content').on('submit', 'form', function (event) {
        event.preventDefault();
        if (submit) {
            submit = false;
            let button = $(this).find('button:focus'),
                // интересует строка ниже
                action = button.attr('formaction') ? button.attr('formaction') : this.action,
                alert = $('#alert').html();
            $.post(action, $(this).serialize() + '&' + button.attr('name') + '=' + button.val(), function (json) {
                $('#alert').html(json.alert).fadeOut(3000, function () {
                    $(this).html(alert).show();
                    submit = true;
                    if (json.result === 'success') {
                        sessionStorage.clear();
                    } else {
                        $('form').trigger('reset');
                        button.blur();
                    }
                });
            }, 'json').fail(function (error) {
                console.error(error.responseText);
            });
        }
    });

можно ли по аналогии с php записать
action = button.attr('formaction') ?: this.action
или
action = button.attr('formaction') ?? this.action
?
  • Вопрос задан
  • 187 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
button.attr('formaction') || this.action
Ответ написан
samdeweb
@samdeweb
Я верстальщик.
Если вы про тернарный оператор, то да, она присутствует и в JS.
Синтаксис такой же:
условие ? выражение 1 : выражение 2

Так же можете использовать логический оператор или( || ), как уже упомянули. Он будет искать истину(true) пока не дойдёт до последнего элемента сравнения, и как найдёт true, остановиться и запишет результат в переменную action.
action = button.attr('formaction') || this.action
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mountpoint
@mountpoint
null
Да, можно. Но придется прикрутить Babel и установить этот плагин https://babeljs.io/docs/en/babel-plugin-proposal-n...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
JarSoft Новосибирск
от 2 000 до 2 500 usd.
от 110 000 до 150 000 руб.
26 авг. 2019, в 01:06
2000 руб./за проект
25 авг. 2019, в 23:48
4000 руб./за проект
25 авг. 2019, в 22:35
1000 руб./за проект