javascript - 无法获取输入字段 JS 的值

标签 javascript html sinatra rack

我对 JS 和 HTML 很陌生,所以我很抱歉。 我在尝试使用 pattern='' 属性验证输入到表单字段时遇到了麻烦。尽管它捕获无效输入并给出相应的错误消息,但随后对输入的修改不会更改错误消息。例如,

pattern="[a-zA-Z]"如果用户在字段中输入“testing2”,将产生相应的消息。但是,如果用户将条目编辑为“测试”,我仍然会收到验证错误。

为了解决这个问题,我尝试将字段输入记录到控制台。 所以,在 HTML 中:

<input class="dest_one_key" name="dest_one_key" type="text" id="dest_one_key" required="" placeholder="Work">

然后:

<script> var v = document.getElementById('dest_one_key').value; document.getElementById('dest_one_key').addEventListener('change', function() { console.log(值:${v} ); }); </script>

...产生

“值:”

在控制台中。 所以表单似乎没有捕获用户输入。

我在以下方面做错了什么: 1)在无效输入后无法正确注册用户具有有效输入 2) 将字段的值记录到控制台?

最佳答案

由于您的脚本只运行一次,因此 v 变量将为空。您需要在事件中使用 event.target.value 随着时间的推移更改它。像这样:

var v;

document.getElementById('dest_one_key').addEventListener('change', function(event) {
    v = event.target.value;
    console.log('Value: ' + v);
});
<input class="dest_one_key" name="dest_one_key" type="text" id="dest_one_key" required="" placeholder="Work">

关于javascript - 无法获取输入字段 JS 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46749127/

相关文章:

javascript - 在 JavaScript 中调用 getter 函数及其名称?

javascript - jQuery Datatables 未序列化超过 1000 条记录

html - 我怎样才能将 bootstrap 4 下拉菜单向左对齐并扩展到全长

ruby - 无法使用 DataMapper 在 SQLite 中创建新实体

ruby - 在 Sinatra post 上读取参数

javascript - Node.js 新功能 - "http.Server"事件

javascript dropdown onclick更改元素属性

html - 边距自动、 float 和父高度

python - 如何使用 Django 将每个图像嵌入 HTML 页面的目录中?

mysql - Sequel + Sinatra + Phusion Passenger + MySQL 连接管理