javascript - jquery/javascript 将文本添加到输入字段中

标签 javascript jquery placeholder

我有一个使用 html5 占位符的输入框:

<input type="text" name="website" class="url" required placeholder="enter website">

使用 jQuery 或直接 javascript,我想在焦点用户键入的数据前添加一个字符串。如果该字段包含的数据多于预设字符串变量(例如:http://example.com),则该字段满足我的要求。如果它仅包含原始字符串 ('http://'),则清除输入值并显示占位符。

以下代码适合我。

var input = $("#processor .url");
var prefix = 'http://';

input.focus(function() {
    if (input.val().indexOf(prefix) == -1) {
        input.val(prefix + input.val());
    }
}).blur(function() {
    if (input.val() == prefix) {
        input.val('');
    }
});

有没有更好的方法来写这个以提高性能等...,这是我真正的问题吗?

最佳答案

这比实际看起来要容易。 我根据@Tahir Yasin 的评论做了一个演示。

CSS:

.grey { color:#aaa; }

html:

<input type="text" />

jQuery:

var inputval = "";
$(document).ready(function() {
    // Define your default value to show on input
    $("input[type='text']").val("Enter your link here...");
    // Add grey color or optionally blur effect
    $("input[type='text']").addClass('grey');
    // Save your default value
    inputval = $("input[type='text']").val();
    $("input[type='text']").focusin(function() {
    // if textbox is empty or got the default value
    if ($(this).val() == "" || $(this).val() == inputval) {
        // Clear the box
        $(this).val("http://"); // Your text here..
        // Remove grey color
        $(this).removeClass('grey'); }
    }).focusout(function() {
        // if textbox is empty or just contains your value
        if ($(this).val() == "" || $(this).val() == "http://" ) {
            // Put your Default value back
            $(this).val(inputval);
            // Add grey color
            $(this).addClass('grey'); }
    });
});

fiddle :http://jsfiddle.net/BerkerYuceer/TgZ8L/

我只是喜欢在 Action 的每一步都使用 jQuery。但是正如您所看到的,我的代码性能不如您的代码,因此您已经在使用性能最高的方法。

这是基于您的代码的演示: http://jsfiddle.net/BerkerYuceer/qbLyD/

您可以自己看到差异,它几乎相同,但显然您的代码更快。

关于javascript - jquery/javascript 将文本添加到输入字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486520/

相关文章:

javascript - 将项目放在可排序区域上时如何删除可排序区域的文本?

javascript - 整个图像未显示在网页的标题部分

javascript - 使用 jQuery 和 Javascript 的多个 API 调用架构

javascript - 如何在 jquery 中的 foreach 之后插入最后一项?

Javascript:如何修改我的代码以在主题发布后添加回消失的占位符

selenium - 确定是否在 Protractor 测试中显示占位符文本

javascript - 在 Angular 4 中为每个实例封装一个变量

javascript - Shopify 中的 Afterpay 代码段位置

javascript - phantomjs 不使用 window.scollTo 向下滚动

javascript - HTML:密码字段问题中的 HTML5 占位符属性 - 显示正常文本?