if语句回显不同代码的不同链接

时间:2014-07-16 12:42:15

标签: javascript jquery arrays

我正在使用此代码

HTML:

<div id="message">some message</div>
<input type="text" id="myInput" />​    

jQuery的:

$(function() {
$("#message").hide();
$("#fail").hide();

var prefix = ['HX', 'HD', 'BD', 'LS']

$('#myInput').keyup(function(e) {
    var value = $(this).val();
    var firstTwo = value.substr(0,2);
    var firstTwoUpper = firstTwo.toUpperCase();

    if(firstTwo != firstTwoUpper) {
        $(this).val( value.replace(/^\w\w/, firstTwoUpper) );
    }
    if(value.length > 1) {
        if($.inArray(firstTwoUpper, prefix) >= 0) {
            $("#fail").hide();
            $("#message:hidden").fadeIn();
        } else {
            $("#message").hide();
            $("#fail:hidden").fadeIn();
        }
    } else {
        $("#message").hide();
        $("#fail").hide();
    }
 });
});

要进行邮政编码检查。我从这里得到了上面的代码:Jquery check array perform function它工作得很好,但我想显示一条包含链接的消息,这些链接彼此不同。例如,我想要代码&#39; HX&#39;链接到Facebook,我想要&#39; BD&#39;链接到BBC。我如何正确编写if语句?我尝试了各种各样的方法,但我没有达到我的需要。

有人可以给我一点指导吗?

谢谢,

本。

3 个答案:

答案 0 :(得分:1)

fiddle执行您可能正在寻找的内容

<div id="message"><a href="#">Some link</a></div>
<div id="fail">Invalid postcode</div>
<input type="text" id="myInput" />

$(function () {
    $("#message").hide();
    $("#fail").hide();

    var prefix = ['HX', 'HD', 'BD', 'LS'];
    var links = ['http://www.facebook.com','http://www.example.com','http://www.bbc.com','#'];

    $('#myInput').keyup(function (e) {
        var value = $(this).val();
        var firstTwo = value.substr(0, 2);
        var firstTwoUpper = firstTwo.toUpperCase();

        if (firstTwo != firstTwoUpper) {
            $(this).val(value.replace(/^\w\w/, firstTwoUpper));
        }
        if (value.length > 1) {
            var index = $.inArray(firstTwoUpper, prefix);
            if (index >= 0) {
                $("#fail").hide();
                $("#message").fadeIn();
                $("#message a").attr("href",links[index]).html(links[index])
            } else {
                $("#message").hide();
                $("#fail:hidden").fadeIn();
            }
        } else {
            $("#message").hide();
            $("#fail").hide();
        }
    });
});

答案 1 :(得分:1)

这个小提琴:http://jsfiddle.net/um67M/2/

我将字符串数组中的前缀更改为对象数组。

如果因为fadeIn()的速度用户输入速度非常快,您将会看到一个问题。

$(function() {
$("#message").hide();
$("#fail").hide();

    var prefix = [{code:'HX',link:'www.facebook.com'}, {code:'BD',link:'www.bbc.com'}];

$('#myInput').keyup(function(e) {
    var value = $(this).val();
    var firstTwo = value.substr(0,2);
    var firstTwoUpper = firstTwo.toUpperCase();

    if(firstTwo != firstTwoUpper) {
        $(this).val( value.replace(/^\w\w/, firstTwoUpper) );
    }
    if(value.length > 1) {
        for(var obj in prefix){
            console.log(firstTwoUpper, prefix[obj].code, firstTwoUpper == prefix[obj].code);
            if(firstTwoUpper === prefix[obj].code){
                 $("#fail").hide();
                var link = '<a href="'+prefix[obj].link+'">'+prefix[obj].link+'</a>';
                $("#message").append(link);
                $("#message:hidden").fadeIn();
                break;
            }else {
                $("#message").hide();
                $("#fail:hidden").fadeIn();
            }
        };
    } else {
        $("#message").empty();
        $("#message").hide();
        $("#fail").hide();
    }
 });
});

答案 2 :(得分:1)

$('#myInput').keyup(function (e) {
        var value = $(this).val();
        var firstTwo = value.substr(0, 2);
        var firstTwoUpper = firstTwo.toUpperCase();

        if (firstTwo != firstTwoUpper) {
            $(this).val(value.replace(/^\w\w/, firstTwoUpper));
        }
        if (value.length > 1) {
            if ($.inArray(firstTwoUpper, prefix) >= 0) {
                if (firstTwoUpper == "HX") {
                    $("#message").empty();
                    $("#message").html('<p>some message</p><a href="http://www.google.com">Google</a>');
                } else if (firstTwoUpper == "HD") {

                    $("#message").empty();
                    $("#message").html('<p>other message</p><a `enter code here`href="http://www.stackoverflow.com">Stack OverFlow</a>');
                }
                $("#fail").hide();
                $("#message:hidden").fadeIn();
            } else {
                $("#message").hide();
                $("#fail:hidden").fadeIn();
            }
        } else {
            $("#message").hide();
            $("#fail").hide();
        }
    });
小提琴就在这里 fiddle