有人可以告诉我为什么我的代码不起作用吗?
我得到“this.username未定义”,我真的不明白为什么......
这里是代码:
Latitude Longitude
43-21-33.87-N 05-51-43.13-W
感谢您的帮助..
答案 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元素。有几种方法可以获得输入值
将ref='username'
添加到<input>
标记
然后使用this.refs.username.value
从ref
在validate
函数中,使用e.target.value
从oninput事件中获取元素
使用this.root.querySelectorAll('input')[0].value
作为范围DOM查询