gpt4 book ai didi

javascript - jQuery 的 .val() 在 Firefox 和 Chrome 中为带有占位符文本的输入元素返回不同的值

转载 作者:行者123 更新时间:2023-12-03 07:49:41 24 4
gpt4 key购买 nike

鉴于以下 HTML,当使用最新的 jQuery 时,我发现 Firefox 和 Chrome 中返回了不同的值:

HTML:

<input type="text" name="name" id="name" placeholder="Type Here">
<input type="email" name="email" id="email" placeholder="Type Here">

jQuery:

jQuery("#name").val();  // Returns "Type Here" in Chrome, blank in Firefox
jQuery("#email").val(); // Returns "Type Here" in Chrome, blank in Firefox

在我看来,上面应该返回一个空白字符串,因为“在此处键入”只是占位符文本。

为什么这里有区别?

最佳答案

正如 @BarMar 评论的那样,我发现了一些丑陋的旧代码,它们采用占位符属性并将其设为实际值:

/* Placeholder Fix */
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur().parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});

删除了这个,现在就好了。谢谢。

关于javascript - jQuery 的 .val() 在 Firefox 和 Chrome 中为带有占位符文本的输入元素返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35053032/

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