2012-10-17 60 views
-1

我需要将输入字段中的第5个和第6个字符与选择菜单中的值匹配。匹配第5个和第6个字符以选择值

我会发布一些虚拟HTML展示了我的意思

<select class="mySelect"> 
    <option value="AB"></option> 
    <option value="CD"></option> 
    <option value="EF"></option> 
    <option value="GH"></option> 
</select> 

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

我需要找到,例如,如果输入的是(1111AB111)则警告(真)...所有其它字符都不是重要的,我需要匹配第5和第6个字符。

+1

告诉我们你试过了什么? –

回答

1

我已经做了一个jsFiddle,显示了这样做的粗略方法,在这里:http://jsfiddle.net/TN5Ru/

function twoMatchingCharacters(selectElement,inputElement){ 
    if($(selectElement).val() === $(inputElement).val().slice(4,6)){ 
     $('p').text('That is a match');     
        }else{ 
     $('p').text('That is not a match'); 
        } 
} 

$('.mySelect').change(function(){ 
    twoMatchingCharacters($('.mySelect'),$('.myInput'));   
}); 

$('.myInput').keyup(function(){ 
    twoMatchingCharacters($('.mySelect'),$('.myInput'));   
}); 

显然,你不想改变页面上每个段落的文本,并且有更好的方法来绑定这个函数,但你应该明白了。

+0

谢谢,这更类似于我所需要的 –

0

使用正则表达式

var n = str.match(/^.{4}(.{2})/); 

然后n[1]是第5和第6个字符的字符串。

+0

看到这个演示:http://jsfiddle.net/kMuXB/ –

0

正则表达式功能强大,但可以在像您这样的情况下不必要地消耗性能。你真正需要的是一个简单的子串函数:

if (yourString.substr(4, 2) == theOptionValue) { 
    // Do something 
} 

你也可以把它放在一个switch语句中,这取决于你的情况。 jQuery是一个非常棒的工具,但是不要忘记它是一个库,而不是它自己的语言,并且很多都可以用纯粹的老式JavaScript来完成。

1

该代码进行测试和工作...

$(function() { 
    $("input.myInput").on("keyup", function() { 
     var text = $(this).val(); 
     if (text.length < 6) return; 
     text = text.substr(4, 2); 
     var $option = $("select.mySelect option[value='" + text + "']"); 
     if ($option.length == 0) return; 
     alert("Found " + text); 
    }); 
}); 

这里有一个的jsfiddle ...

http://jsfiddle.net/UBhy9/

+0

谢谢,可能会更长的时间,其他人,但工作正常,所以1+ –

+0

很高兴帮助:) – Archer

+0

如果人们想-1,然后请解释为什么或不 - 人会学到任何东西。谢谢:) – Archer

0

试(测试):

$("input.myInput").bind('keyup', function() { 
    var fifthandsixth = ($(this).val())[4] + ($(this).val())[5]; 
    if ($(".mySelect > option[value='" + fifthandsixth + "']")[0]) { 
     alert("true"); 
    } else { 
     // alert("false"); 
    } 
}); 
相关问题