jQuery 如果没有,则将 http:// 作为前缀添加到文本输入

Posted

技术标签:

【中文标题】jQuery 如果没有,则将 http:// 作为前缀添加到文本输入【英文标题】:jQuery Add http:// as prefix to text input if there is none 【发布时间】:2011-12-10 16:25:51 【问题描述】:

我有一个文本输入,需要一个 url 作为值(完整的 http://),如果用户不自己编写它,我希望它自动添加。我的代码如下,

jQuery

$('.txtUrl').keypress(function(e) 
    if(e.keyCode == 13) 
        var ini = $(this).val().substring(0,3);
        if (ini === 'http')
            $.noop()
        
        else 
            // get value from field
            var cur_val = $(this).val(); 
            // do with cur_val
            $(this).val('http://' + cur_val);
                
    
);

html

<input type="text" class="txtUrl" />

Problem in Fiddle

【问题讨论】:

【参考方案1】:

您将 http 与文本的前三个字符 (substring(0,3)) 进行比较,当然,这永远不会是真的。将其更改为:

var ini = $(this).val().substring(0, 4);

【讨论】:

【参考方案2】:

http://jsfiddle.net/bitsmix/jMH9b/

if ($(this).val().match(/^http/))

正则表达式总是更好:)

【讨论】:

正则表达式总是比字符串替换更昂贵。

以上是关于jQuery 如果没有,则将 http:// 作为前缀添加到文本输入的主要内容,如果未能解决你的问题,请参考以下文章

jQuery插件,定制文本以填充父元素的高度,如果没有,则将其椭圆';t适合

如果 href 以 http://www.twitter.com/ 开头,则将类添加到 <a> [重复]

jQuery:如果孩子有类,则将类/css添加到父类

jQuery如果excel单元格值为负,则将文本着色为红色

jQuery Cookie 插件行为:如果 cookie 是会话 cookie,则将域设置为“.com”

jQuery - 如果所有子元素都具有相同的类,则将附加类添加到页面上的另一个元素