Javascript 提交聚合物纸张输入时如何调用函数?

Javascript 提交聚合物纸张输入时如何调用函数?,javascript,html,polymer,Javascript,Html,Polymer,我有一个polymer应用程序,它接受一个文本输入ID,并根据ID是否在列表中返回是或否。理想情况下,用户可以按enter键或单击查找按钮,然后将调用搜索ID函数 我可以不使用表单来执行此操作吗? 如果我使用表单,我可以在不发出post/put/get请求的情况下执行此操作吗?数据都存储在元素的属性数组中 <dom-module id="demo-app"> <template> <style> :host { disp

我有一个polymer应用程序,它接受一个文本输入ID,并根据ID是否在列表中返回是或否。理想情况下,用户可以按enter键或单击查找按钮,然后将调用搜索ID函数

我可以不使用表单来执行此操作吗? 如果我使用表单,我可以在不发出post/put/get请求的情况下执行此操作吗?数据都存储在元素的属性数组中

<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');
},