开发者

Url validation with jquery

开发者 https://www.devze.com 2023-04-11 06:07 出处:网络
Why in following code don\'t work this part if(!$(this).val()){... from code and this match is true with http://www.st, i 开发者_如何学Gowant as: http://stackoverflow.com ?

Why in following code don't work this part if(!$(this).val()){... from code and this match is true with http://www.st, i 开发者_如何学Gowant as: http://stackoverflow.com ?

Example: 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;
});


This

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

is probably not working because it is being called on keyup

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

Therefore, there will always be something in the input, as a key stroke is needed to fire keyup and it will never evaluate as empty.

EDIT

As per the comment

What's the solution?

If you want to check if the field is empty, do the check on focusout.

Here is your updated code:

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

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

And your fiddle updated: http://jsfiddle.net/gp9nL/4/

0

精彩评论

暂无评论...
验证码 换一张
取 消