gpt4 book ai didi

javascript - JQuery - 向输入添加值,但一个输入没有 ".value"属性

转载 作者:行者123 更新时间:2023-12-01 01:05:46 25 4
gpt4 key购买 nike

所以我想要一个函数,可以像真人一样写入输入(通过触发所有事件)这是我写的代码:

仔细查看“element.value += text_array[i]”部分。

function FillInText(element_id, text){
var element = $("#"+element_id);
element.focus();
element.click();

var kdown = jQuery.Event("keydown");
var kup = jQuery.Event("keyup");

var text_array = text.split("");

for(i = 0; i < text_array.length; i++){
var code = text_array[i].charCodeAt(0);
kdown.which = code;
kup.which = code;

element.trigger(kdown);
element.change();
element.value += text_array[i];
element.trigger(kup);
}
element.blur();
}

此代码非常适合任何输入,并且 99% 的时间都有效。但有一个输入字段,其值未存储在其“.value”属性中。当我尝试使用它设置/获取值时,没有任何返回。但是,我可以使用 JQuery 的“val()”函数来获取它。

但是“Element.value”的完美之处在于您可以向现有值添加一些值。据我所知,你不能用“val()”来做到这一点。虽然你可以使用:

val(function(index,currentvalue){
return currentvalue + text_array[i];
});

代码的理解如下:previousValue 是“a”,addedValue 是“b”。输入字段是“a”,它采用“b”并将其相加,然后放入输入中。所以它不会添加“a”,而是删除现有的,然后添加“ab”。当使用“element.value += 'b'”时,它甚至不会触及 previousValue,而只是将其添加到其中。我想要一个类似的函数:

element.val() += "b";

我希望你能理解我的问题...如果我解释得不好,我很抱歉。

最佳答案

我认为您的代码不适用于任何输入。

.value 是一个 DOM 属性,但 element 包含一个 jQuery 对象,而不是 DOM 元素。通过索引就可以得到对应的DOM元素:

element[0].value += test_array[i];

您可以使用函数通过 jQuery .val() 添加值:

element.val(function(_, old_value) {
return old_value + test_array[i];
}

关于javascript - JQuery - 向输入添加值,但一个输入没有 ".value"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55662671/

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