首页 > 解决方案 > 按名称从元素获取输入值以...开头(jQuery)

问题描述

我正在尝试获取通过 name 属性获得的输入值。这是我的代码:

$("input[name^='valor-unit-']").keyup(() => {
    console.log($(this).val())
})

但我得到一个错误:

jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
    at w.fn.init.val (jquery-3.3.1.min.js:2)
    at HTMLInputElement.$.keyup (main.js:636)
    at HTMLInputElement.dispatch (jquery-3.3.1.min.js:2)
    at HTMLInputElement.y.handle (jquery-3.3.1.min.js:2)
val @ jquery-3.3.1.min.js:2
$.keyup @ main.js:636
dispatch @ jquery-3.3.1.min.js:2
y.handle @ jquery-3.3.1.min.js:2

任何想法?

标签: jqueryinput

解决方案


使用以下代码:

$("input[name^='valor-unit-']").keyup(function() {
    console.log($(this).val())
})

问题是() =>我认为是一种typescript创建函数的方式。

() => {}称为arrow function

与函数表达式相比,箭头函数表达式的语法更短,并且在词法上绑定 this 值(不绑定它自己的thisargumentssupernew.target)。箭头函数始终是匿名的。

演示

$("input[name^='valor-unit-']").keyup(function() {
    console.log($(this).val())
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="valor-unit-1" />


推荐阅读