gpt4 book ai didi

javascript - 无法将字符串传递给 jquery 函数

转载 作者:行者123 更新时间:2023-11-30 15:41:59 27 4
gpt4 key购买 nike

我希望获取搜索输入的当前值,然后清除焦点上的输入框,存储字符串并将其传递给一个函数以在模糊时重新填充输入框。

$("input#search").bind('focus', function() {
var search_text = document.getElementById('search').value;
$("input#search").val("");
}).bind('blur', function(search_text) {
$("input#search").val(search_text);
});

目前,这成功地获取了焦点上的值并清除了输入框,但在模糊时,它用 [object Object] 填充了输入。

我是否正确传递了第 4 行的字符串?

最佳答案

首先,不要使用bind()。它在很久 以前就被弃用了。请改用 on()

关于您的问题,您不能以您尝试的方式直接将参数传递给匿名处理程序函数。就目前而言,您的 search_text 变量将保存 blur 事件。

要解决此问题,您可以将变量存储在 #search 元素本身的 data 属性中。试试这个:

$("input#search").on('focus', function() {
$(this).data('search-text', this.value).val('');
}).on('blur', function(search_text) {
$(this).val($(this).data('search-text'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="search" value="foo bar" />

此外,您在此处创建的行为类似于 placeholder 属性。可能值得对此进行调查,看看它是否满足您的需求。

关于javascript - 无法将字符串传递给 jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40650729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com