Javascript 提交聚合物纸张输入时如何调用函数?
我有一个polymer应用程序,它接受一个文本输入ID,并根据ID是否在列表中返回是或否。理想情况下,用户可以按enter键或单击查找按钮,然后将调用搜索ID函数 我可以不使用表单来执行此操作吗? 如果我使用表单,我可以在不发出post/put/get请求的情况下执行此操作吗?数据都存储在元素的属性数组中Javascript 提交聚合物纸张输入时如何调用函数?,javascript,html,polymer,Javascript,Html,Polymer,我有一个polymer应用程序,它接受一个文本输入ID,并根据ID是否在列表中返回是或否。理想情况下,用户可以按enter键或单击查找按钮,然后将调用搜索ID函数 我可以不使用表单来执行此操作吗? 如果我使用表单,我可以在不发出post/put/get请求的情况下执行此操作吗?数据都存储在元素的属性数组中 <dom-module id="demo-app"> <template> <style> :host { disp
<dom-module id="demo-app">
<template>
<style>
:host {
display: block;
}
</style>
<paper-card heading="Search for ID">
<div class="card-content">
<paper-input id="input" always-float-label label="ID"</paper-input>
</div>
</paper-card>
</template>
<script>
Polymer({
is: 'demo-app',
properties: {
myIds: {
type: Array,
value: ['testID1', 'testID2'],
},
inputObj: {
type: Object,
value: function(){
return this.$.input;
}
},
userInput: {
type: String,
},
},
onEnter: function(){
if(this.myIds.includes(this.userInput)) {
console.log(this.userInput);
}
},
});
</script>
</dom-module>
Polymer的最佳实践是使用平台,在这种情况下,HTML按钮的默认行为是提交表单&一点JavaScript就可以了 具体来说,将您的输入包装在表单中并添加一个按钮:
<form id="demoAppForm">
<paper-card heading="Search for ID">
<div class="card-content">
<paper-input id="input" always-float-label label="ID"</paper-input>
</div>
<button>Lookup</button>
</paper-card>
<form>
确保在分离元素时也删除事件侦听器:
detached: function() {
this.unlisten(this.$.demoAppForm, 'submit', 'onSubmit');
},
你能不能更新你的问题,让它在a中显示所有相关的代码。我见过类似的问题和相关的答案——比如1使用iron-a11y-keys来监听keys=enter,2制作一个名为checkForEnter的函数,比如e.keyCode==13,并在纸张输入元素属性中添加on-keydown=checkForEnter。甚至在某些情况下,我使用表单并覆盖默认表单提交。想知道是否有一种最佳实践方法可以做到这一点,我只需添加一个on change=inputHandler就可以让它工作——出于某种原因,这只会在我按下enter键时触发。如果我将任何内容绑定到该值,例如,如果输入了{{userInput}}则该值将实时更新-但该函数仅在我按enter键时运行。我还将值设置为value={{userInput::input}},尽管我不确定::input部分做什么-您知道吗?无论如何,我会使用你的代码,谢谢你告诉我这是如何做到的!
detached: function() {
this.unlisten(this.$.demoAppForm, 'submit', 'onSubmit');
},