使用jquery进行URL验证

时间:2011-10-04 18:58:52

标签: javascript jquery

为什么以下代码在代码中不起作用if(!$(this).val()){...http://www.st匹配为真,我希望如下:http://stackoverflow.com

示例: http://jsfiddle.net/gp9nL/3/

$('.url').keyup(function(){
    if (!$(this).val().match(/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/)){
        $(this).css("background", "#ffc4c4");
        result = false;
    }else {
        $(this).css("background", "#FFFFEC");
        result = true;
    }
    if(!$(this).val()){
        alert('field is empty')
        $(this).css("background", "#FFFFEC");
    }
    return result;
});

1 个答案:

答案 0 :(得分:0)

if(!$(this).val())

可能无法正常工作,因为它是在keyup

上调用的

$('.url').keyup(function(){

因此,input中总会有一些内容,因为需要一个关键的笔触来激活keyup,它永远不会被评估为空。

修改

根据评论

  

解决方案是什么?

如果您想检查字段是否为空,请检查focusout

这是您更新的代码:

$('.url').focusout(function(){

    if(!$(this).val()){
        alert('field is empty')
        $(this).css("background", "#FFFFEC");
    }        
});

你的小提琴更新了:http://jsfiddle.net/gp9nL/4/