【问题标题】:Polymer 1.0 Iron-form refuse to display data detailsPolymer 1.0 Iron-form 拒绝显示数据详情
【发布时间】:2017-02-15 16:58:56
【问题描述】:

几天来,我一直在寻找为什么我的带有聚合物元素的铁型无法正常工作。当我想在提交时从纸质文本区域查看我的价值时,我不能,因为我的文件无法识别我的 id:feedbackForm。这是我的代码:

    <form is="iron-form" method="get" action="/" id="feedbackForm">
        <paper-textarea name="feedbacks" value="{{feedbackValue::input}}"
                        label="Explain your feedback - required" required></paper-textarea>
        <paper-checkbox name="read" required>You must check this box</paper-checkbox>
        <br>
        <paper-button class="custom indigo popup" type="submit" raised onclick="submitForm(event)"></iron-icon>
            Submit
        </paper-button>
        <div class="output"></div>
    </form>

这是我的脚本:

<script>

    function submitForm(event) {
        console.log('enfin');
        Polymer.dom(event).localTarget.parentElement.submit();
        console.log(Polymer.dom(event).localTarget.parentElement);
    }

    feedbackForm.addEventListener('iron-form-submit', function (event) {
        this.querySelector('.output').innerHTML = JSON.stringify(event.detail);
    });

    Polymer({
        is: 'at-feedback-panel',

    });


</script>

有人知道铁形态是怎么回事吗?当我尝试这个时,我的浏览器告诉我 feedbackForm 是未知的。

【问题讨论】:

    标签: javascript polymer iron-form


    【解决方案1】:
    1. 尝试将 "feedbackForm.addEventListener(..." 更改为 "document.getElementById('feedbackForm').addEventListener(.."

    事件监听器:

    document.getElementById('feedbackForm').addEventListener('iron-form-submit', function (event) {
        this.querySelector('.output').innerHTML = JSON.stringify(event.detail);
    });
    
    1. 应在 HTML DOM 准备就绪时调用事件侦听器。所以,把你所有的script代码移到$(document).ready(function(){...})里面

    看起来像:

    <script>
    
    $(document).ready(function({
    
      function submitForm(event) {
        console.log('enfin');
        Polymer.dom(event).localTarget.parentElement.submit();
        console.log(Polymer.dom(event).localTarget.parentElement);
      }
    
      document.getElementById('feedbackForm').addEventListener('iron-form-submit', function (event) {
        this.querySelector('.output').innerHTML = JSON.stringify(event.detail);
      });
    
      Polymer({
        is: 'at-feedback-panel',
      });
    
    }));
    

    【讨论】:

    • 感谢您的回答,我试过了,但它不起作用,这是我注意到聚合物元素的另一个问题,我想在另一个主题中讨论它。我所有的 document.getElementById('myElementId') 和 document.querySelector('myClassElement') 都是空的。所以 addEventListener 返回一个错误。
    • document.getElementById('myElementId')... 返回错误所以,当 HTML DOM 尚未准备好时,您的脚本代码似乎正在呈现。试试 jQuery $(document).ready().
    • 好吧,在此之前我尝试过使用 JQuery,但似乎 JQuery 和 Polymer 有点混乱:baasic.com/2014/10/03/Using-jQuery-with-Web-components 但我会再次尝试找到在聚合物元素中使用 JQuery 的方法。 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多