我希望在焦点输入字段之后看到Bond-Patterson
,但是结果是Bond
。怎么了,我该怎么办?
$('input[name="surname"]').attr("onfocus", "this.placeholder='Bond-Patterson'");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="surname" placeholder="Click here" onfocus="this.placeholder='Bond'" />
答案 0 :(得分:0)
当我作为Stackoverflow代码段运行时,这是按需工作的。
我发现,问题出在旧的Jquery版本中。是Jquery 1.5.1
最后一个Jquery正常工作。谢谢
答案 1 :(得分:-1)
我建议您看到w3schools documentation on onfocus event
$('input[name="surname"]').on('focus', function() {
$('input[name="surname"]').attr("placeholder", "Bond-Patterson");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="surname" placeholder="Click here" />
答案 2 :(得分:-1)
属性优先级出现问题。
注意:标记属性具有某种优先级。
您可以直接写:
<input type="text" name="surname" placeholder="Click here" onfocus="this.placehoder='Bond-Peterson'"/>
但是,只要您单击或专注于输入,这就会更改/更新占位符的值。
$('input[name="surname"]').focus(() => {
console.log("focus");
$('input[name="surname"]').attr("placeholder", "Bond-son");
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="surname" placeholder="Click here"/>
我不确定您要做什么。但是,如果我猜对了,您会想要这样的东西: 当用户专注于输入时,它会显示一个不同的占位符值,而当用户专注于输入时,它应该显示另一个值。
工作示例
$('input[name="surname"]').focus(() => {
$('input[name="surname"]').attr("placeholder", "Bond-Petterson");
})
$('input[name="surname"]').focusout(() => {
$('input[name="surname"]').attr("placeholder", "Bond");
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="surname" placeholder="Click here"/>