【发布时间】:2019-07-11 21:15:08
【问题描述】:
我正在尝试使用 javascript(和 jQuery)重新创建或模仿(HTML)占位符行为。
谁能告诉我如何实现这一目标? 我尝试使用以下代码:
$(document).ready(function () {
//On init:
var initPlaceholderTxt = $("p").text();
//Execution:
//Using this, placeholder will not display correct information,
//lacking a previous clicked character:
$("#test").on("keydown", function (event) {
var value = $(this).val();
$("p").text(value);
});
/*
//Core feature:
$("#test").keyup(function() {
var value = $( this ).val();
if(value != null && value != "") {
$("p").text(value);
}
else {
$("p").text(initPlaceholderTxt);
}
});
//Make characters appear more dynamically or faster:
$("#test").keydown(function() {
var value = $( this ).val();
$("p").text(value);
});
*/
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="test"></textarea>
<p>Placeholder text</p>
<textarea placeholder="example"></textarea>
我得到了主要部分的工作,但我正在努力让它更有活力。当用户在定义了占位符的默认输入中键入内容时,按下一个键的那一刻,一个字符将出现在框中,并且占位符将消失。我当前的代码似乎不会发生最后一部分。
当我按下一个键时,占位符已经尝试在新字符添加到输入之前更改其文本值。
Most 会说解决这个问题的方法是使用keyup。然而,使用keyup 也有一个缺点,因为当按下一个键时,它不会使字符动态出现在球棒的右侧。请告诉我如何解决这个问题。
编辑: 底部文本区域是显示预期行为的示例。 段落元素的行为/行为应该类似于您在示例中看到的(任何)占位符文本。
【问题讨论】:
标签: javascript jquery html