Выбор шрифта jQuery в диалоговом окне «Добавить блок» отправляет форму вместо выбора шрифта - PullRequest
0 голосов
/ 01 мая 2018

Я хочу использовать Google Font Picker (https://www.npmjs.com/package/font-picker) в диалоговом окне Добавить блочную форму (часть Concrete5 CMS). Но когда я нажимаю на кнопку выбора шрифта, она отправляет форму вместо простого выбора шрифта. Похоже, конфликт JS между событием выбора средства выбора шрифта и отправкой в ​​диалоговом окне формы.

Кто-нибудь знает, как это исправить?

Спасибо.

Код (часть диалогового окна «Добавить блок», который появляется с помощью JS):

<div class="form-group">
    <?php
    echo $form->label('font', t('Select text font family'));
    ?>
    <div id="font-picker"></div>
</div>
<div class="form-group">
    <p class="apply-font">Image text preview</p>
</div>

<script>
$(function(){    
    const fontPicker = new FontPicker(
    'Google-API-key', // Google API key
    'Open Sans', // default font
    {limit: 50}, // additional options
  );
});
</script>

[решаемые]

Спасибо Терри:

$('#ccm-block-form').on("click", ":submit", function(e) {
    if (e.target.id !== 'ccm-form-submit-button')
    {
        e.preventDefault();
    }
});

1 Ответ

0 голосов
/ 01 мая 2018

e.target фактически ссылается на узел DOM, а не на объект jQuery. Вы должны сравнить его с DOM-узлом, возвращенным из объекта jQuery, добавив к нему [0]:

if (e.target !== $('#ccm-form-submit-button')[0]) { ... }

Кроме того, более простой способ - просто проверить идентификатор цели:

if (e.target.id !== 'ccm-form-submit-button') { ... }
...