骚乱是不明确的价值

时间:2017-02-08 20:45:23

标签: riot.js riotjs riot

有人可以告诉我为什么我的代码不起作用吗?

我得到“this.username未定义”,我真的不明白为什么......

这里是代码:

   Latitude         Longitude
43-21-33.87-N   05-51-43.13-W

感谢您的帮助..

1 个答案:

答案 0 :(得分:3)

仅仅因为它很难阅读,我希望你实际上并没有使用riot API来编写组件。我把它转录成标签,这样我们可以更好看:

<test>

  <input
    type="text"
    name="username"
    placeholder="username"
    oninput={validate}
    value=""/>

  <h4>{username_valid}</h4>

  <script>

    this.validate = function(e) {
        this.username_valid = (this.username.value.length > 3) ? 'Valid' : 'Invalid'
    }

  </script>
</test>

您正在尝试从输入元素中获取用户名。标记中的this指的是脚本的范围,而不是DOM元素。有几种方法可以获得输入值

  1. ref='username'添加到<input>标记 然后使用this.refs.username.value从ref

  2. 中获取值
  3. validate函数中,使用e.target.value从oninput事件中获取元素

  4. 使用this.root.querySelectorAll('input')[0].value作为范围DOM查询