Javascript 聚合物输入变化事件

Javascript 聚合物输入变化事件,javascript,polymer,Javascript,Polymer,我所希望的就是能够从聚合元素获取输入,并在更改时发出警报,而无需创建自定义聚合元素 问题: 改变什么也没用 我对此表示怀疑。价值观会起到任何作用 伪代码: <!DOCTYPE html> <html> <head><!--insert proper head elements here--></head> <body> <paper-input floatingLabel label="test" on

我所希望的就是能够从聚合元素获取输入,并在更改时发出警报,而无需创建自定义聚合元素

问题: 改变什么也没用 我对此表示怀疑。价值观会起到任何作用

伪代码:

<!DOCTYPE html>
<html>
  <head><!--insert proper head elements here--></head>
  <body>
    <paper-input floatingLabel label="test" on-change="alert(this.value)"></paper-input>
  </body>
</html>

on-*上的
是聚合物提供的语法糖,因此
on change
在聚合物元素之外不起作用。您可以使用
querySelector
addEventListener
在普通Javascript中执行相同的操作:

<paper-input floatingLabel label="test"></paper-input>

<script>
  document.querySelector('paper-input').addEventListener('change', function(event) {
    console.log(event.target.value);
  });
</script>

document.querySelector('paper-input')。addEventListener('change',函数(事件){
日志(event.target.value);
});

我正在使用纸张滑块,发现“更改时”没有任何作用,但“更改时”触发了我想要的。因为纸质输入是一个聚合元素,所以它应该和声明性事件处理一起工作

我不知道OP在键入时是否需要更改回调…但是对于Polymer 1.0+用户可以在键入时收听更改,只需在输入时使用
而不是在更改时使用
“事件”


您可以使用以下语法在注释中指定自定义更改事件名称:

元素将触发'value'属性更改事件(当'value'属性更改时为非冒泡DOM事件)

要素声明:

<paper-input label="Enter search term" 
             on-value-changed="_onSearchTermChanged" 
             value="{{searchTerm}}">

有关更多详细信息,请参阅check

onchange=“”是一种处理和重写javascript事件的旧方法。以上答案中的addEventListener是正确的。此外,on change=“”与onchange=“”不同。上面列出的原始on-change不起作用的原因是,您需要给它一些类似于:on-change=“{{myTestClick}}”和代码中的do-myTestClick:function(event,detail,sender){alert('hi');}的内容,它们是从元素的实现中使用的。不在外面。为什么这不在纸上!似乎这一事件将是极其重要的,但我在其文档中的任何地方都找不到它。在3个文件中。
target-prop="{{hostProp::target-change-event}}"
<paper-input label="Enter search term" 
             on-value-changed="_onSearchTermChanged" 
             value="{{searchTerm}}">
_onSearchTermChanged: function (event) {
     console.log(event.detail.value);
 }