使用javascript更改<input> onfocus值

时间:2019-08-23 07:55:10

标签: javascript jquery html

我希望在焦点输入字段之后看到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'" />

3 个答案:

答案 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"/>