2017-07-17 63 views
0

从JavaScript中的纸张输入元素获取值我无法检索聚合物js中纸张输入的值。我正在使用纸张输入,当我尝试使用document.getElementById('ID')获取值时,它不起作用,并且说无法读取null值的属性'值'。如何使用document.getElementById('elementID')

<paper-input id='firstName' label="First name" auto-validate allowed-pattern="([a-zA-Z])" required error-message="Field is required"> 
</paper-input> 
<paper-button id="submitButton" raised type="submit" on-click="validateForm">Submit</paper-button> 

JS

validateForm() { 
    alert (document.getElementById('firstName').value); 
} 
+0

您的纸元素可能不存在于'validateForm()'范围内。您可能需要确保它在'onload'内部运行,或者将其链接为生成纸张元素的回调。 –

回答

0

这是一个不好的做法与聚合物工作时利用的getElementById()的。相反,我会利用Automatic node finding in Polymer
我在下面添加了一个例子。我也将聚合物推荐的这种点击式改变为点击式。
另一种方法是使用querySelector()。值 获取值,如here所示。但是,我更喜欢数据绑定的方式来这样做。

<dom-module id="x-custom"> 
    <template> 
    <paper-input id='firstName' label="First name" value="[[inputValue]]" 
       auto-validate allowed-pattern="([a-zA-Z])" required error-message="Field is required"> 
    </paper-input> 
    <paper-button id="submitButton" raised 
       on-tap="validateForm">Submit</paper-button> 
    </template> 

    <script> 
    Polymer({ 
     is: 'x-custom', 
     properties: { 
      inputValue: { 
      type: String 
     } 
     }, 

     validateForm: function() { 
     console.log(this.inputValue); 
     } 
    }); 
    </script> 
</dom-module> 
+1

建议对组件之间的通信使用属性和数据绑定。此外,鼓励单向。 https://www.youtube.com/watch?v=pAW4YDLtPVs#t=1m40s –

+0

所以我的回答是正确的。只需添加其他链接即可显示其他选项或可能的重复项。 @FrankR。感谢您发现并纠正'$'错误。 – Niklas

相关问题