4

我正在尝试根据输入到输入中的值(邮政编码)是否包含一组预定义的字符来使 div 淡入。我已经设法让它为一个值工作,但我希望它可以处理多个输入,因为最终会有多个邮政编码。如果我可以让它忽略空格和大小写也会很好,这样我就可以为每个邮政编码设置一个值,而不是像我在这里所做的那样:

$(".postcode-checker").click(function()
{
 var name = $("#postcode-form input").val();
 if(name != '')
{
   if ($("#postcode-form input").val().indexOf("BS2 9","bs2 9","BS29","bs29","Bs2 9","Bs29") > -1)
   {
    $('#bpwdp').fadeIn(500);
   }
 }
});

http://jsfiddle.net/x8NwW/

如果您输入“BS2 9”,它会起作用,但以下值都不起作用,例如“bs2 9”。

我一直在阅读,我不确定正则表达式、.indexOf 或 .match 是否会是答案,但我不确定如何在这种情况下实现它们。

任何帮助将不胜感激

4

2 回答 2

5

删除空格,转换为大写,然后您可以将字符串的开头与BS29

$(".postcode-checker").click(function() {
   var name = $("#postcode-form input").val().replace(/\s+/g, '').toUpperCase();    
   $('#bpwdp')[name.match(/^BS29/) ? 'fadeIn' : 'fadeOut'](500);
});

这是一个小提琴

于 2013-08-01T08:50:57.337 回答
3

您的 if 条件不正确,indexof因此使用以下代码:

var postcode = ["BS2 9","bs2 9","BS29","bs29","Bs2 9","Bs29"];
if (postcode.indexOf($("#postcode-form input").val()) > -1){...}

indexOf 的正确语法是 be :

array1.indexOf(searchElement[, fromIndex]);
^^^              ^^^ data that you will search
data from which you search

教程在这里

于 2013-08-01T08:48:13.043 回答