Попытка отправить полимер в форме железа 2 - Невозможно прочитать свойство 'submit' из null

Я не могу отправить свою железную форму. На данный момент мне просто нужно увидеть содержимое в консоли, но при попытке отправить форму я получаю только сообщение об ошибке: Uncaught TypeError: Невозможно прочитать свойство 'submit' из null. Я, наверное, пропустил что-то очевидное. Я использую страницу: https://www.webcomponents.org/element/PolymerElements/iron-form

<iron-form id="sizeForm">
        <form method="post" action="">
            <paper-dropdown-menu label="Choose type" on-iron-select="_typeSelected">
                <paper-listbox slot="dropdown-content">
                    <paper-item value="Sneakers">Sneakers</paper-item>
                    <paper-item value="Shoes">Shoes</paper-item>
                    <paper-item value="T-shirts">T-shirts</paper-item>
                    <paper-item value="Jeans">Jeans</paper-item>
                </paper-listbox>
            </paper-dropdown-menu>
            <add-sneakers hidden$="{{hideSneakers}}"></add-sneakers>
            <paper-button onclick="{{_submitForm}}">Accept</paper-button>
            <div class="output"></div>
        </form>
    </iron-form>

<script>
    _submitForm() {
    document.getElementById('sizeForm').submit();
    }
</script>

2 ответа

Решение

+ Изменить

<paper-button onclick="{{_submitForm}}">Accept</paper-button>

в

<paper-button on-tap="_submitForm">Accept</paper-button>

или же

<button onclick="_submitForm()">Accept</button>

Кроме того, кажется, iron-form документы не правильно поняли: document.getElementById('sizeForm').submit() работает с button но не paper-button, this.$.sizeForm.submit() работает с любым. (Я расскажу об этом подробнее и, возможно, отправлю запрос на извлечение.)

Смотрите эту ручку для примера.

Вы должны дать атрибуту id форму в соответствии с тем, что у вас есть в JavaScript.

<form id="form_name" method="post" action="">

и исправьте его в javascript, поскольку идентификатор, который вы используете в своем примере, (уже) определен ранее.

document.getElementById('form_name').submit();

Итак, суть в том, что вам нужно добавить идентификатор в форму и исправить его в коде js.

Другие вопросы по тегам