2012-10-17 63 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"); 
    } 
}); 
相關問題