jquery $(this).瓦尔()在WTF上使用.on('input')返回空

ctrmrzij  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(156)

我在flask应用程序中有一个ID为start_date的WTForm文本字段

<div class="col-2 col-2-xsmall" id="start_date">
    {{ form.start_date(placeholder="Start Date") }}
</div>

我也有后续的jQuery,我试图登录到控制台。

var $start_date = $('#start_date')
    $start_date.on('input', function(){
        console.log($(this).text());
        console.log("Hello")

最终目标是在字段中匹配正则表达式时更新DOM,但在开发过程中,当我记录$(this).val()时,我在控制台中得到一个空字符串。额外的日志只是为了进行健全性检查,当我按下字段中的任何键时,它都会显示在控制台中。

nilread.wkx http://localhost:5000/query.html?query_id=1
main.js:217 
main.js:218 Hello

main.js:217 
main.js:218 Hello

main.js:217 
main.js:218 Hello

main.js:217 
main.js:218 Hello

这是我输入数字1991时的控制台,我希望每个Hello上面的输出是字段中的值,而不是我得到的空字符串。

frebpwbc

frebpwbc1#

我不确定是否已经很好地理解了,但首先,为什么要使用div作为date类型的输入?另外,你已经谈到了获取输入的值,但你使用的是text方法:为什么?
而不是div,你应该使用HTML input(如果你只想有日期类型,可以添加type="date")标签如下:

/*
var $start_date = $('#start_date');
$start_date.on('input', function(event) {
    console.log(event.val());
    console.log("Hello");
});
*/

var start_date = document.getElementById('start_date');
start_date.addEventListener('input', function(event) {
    console.log(event.target.value);
    console.log("Hello");
});
<input class="col-2 col-2-xsmall" id="start_date" value='{{ form.start_date(placeholder="Start Date") }}'>

注意:我使用了Vanilla JS,因为在代码片段中无法识别JQuery,因此您可以执行它并查看它是否是您想要的。注解的jQuery代码应该可以工作。

相关问题