2014-10-20 51 views
-3

我很困惑匹配輸入值和數組。匹配輸入值和數組

我有一個輸入框,可以輸入作者名:

<b>Author's name:</b> 
<input type="text" name="authorName"> 

而且還有三位作者在總,我把它們放在一個數組:

var authorName =["a","b","c"]; 

有三本書匹配這些作者在一個下拉列表中:

<b>Select Book:</b> 
<select name="selectBook" id="bookName"> 
<option value="" selected="selected">-</option> 
<option id="bookA"value="q">My Decade In The Premier League</option> 
<option id="bookB"value="r">Harry Potter</option> 
<option id="bookC"value="s">Twilight</option> 
</select> 

這是一個textarea來顯示書的信息;

如果用戶輸入「a」並選擇下拉列表「q」,給出信息「x」;

如果用戶輸入「b」並選擇下拉列表「r」,則給出信息「y」;

如果用戶輸入「c」並選擇下拉列表「s」,則給出信息「z」;

<br> 
<input type="button" value="RETRIEVE"> 
<br> 
<textarea name="infoBox"></textarea> 

如果輸入名稱不在數組中或與書名不匹配。

textarea的框將輸出"author name is incorrect!"

我不知道該怎麼做。

+0

是什麼讓這個問題從以前的有什麼不同? – undefined 2014-10-20 15:39:59

+0

原因我想我在前一箇中沒有清楚地說出。所以答案不能解決問題 – 2014-10-20 15:42:35

回答

0

我認爲這是你在找什麼。提交答案時,它會檢查值是否在數組中,並且它與書籍描述相匹配。然後返回一個肯定或沒有

var authorName =["a","b","c"]; 

$("#retrieve").click(function(){ 

    var selectedAuthor = $(".author-name").val(); 
    var selectedBook = $("#bookName").children(":selected").attr("id");; 

    if(($.inArray(selectedAuthor, authorName) > -1) && (selectedBook == "book-"+selectedAuthor)) { 

    $("#results").val("YEP ITS A MATCH"); 
    }else{ 
    $("#results").val("SORRY, NO MATCH"); 

    } 

}); 

FIDDLE

UPDATE

顯示所選書:

NEW FIDDLE

新的更新 增加了一個單獨的ARRA y代表圖書信息:

NEW FIDDLE 2

+0

謝謝你的回答。這表明作者與書名匹配與否,但如果匹配如何給出不同的書籍信息?我是一名JavaScript新生。對不起 – 2014-10-20 16:41:21

+0

@MarkMao沒有問題,我添加了一個新的小提琴,它顯示瞭如果有匹配選擇哪本書 – jmore009 2014-10-20 17:01:55

+0

我看,但問題是有另一個數組商店書信息(x,y,z),如果匹配它應該給出「x」或「y」或「z」作爲結果......非常感謝你。 – 2014-10-20 17:37:40

0

下面的代碼應該工作

  $(document).ready(function() { 

     $("#RETRIEVE").click(
      function() { 
       retrieve(); 
      }    
     ); 
    }); 

function retrieve() { 
    var authorName =["a","b","c"]; 
    var text = $('#authorName').val(); 
    var drop= $('#bookName :selected').text(); 
    if ((authorName.indexOf(text) != -1) && $("#bookName").get(0).selectedIndex-1== $.inArray(text,authorName)) 

     $('#infoBox').val(drop); 

    else   
     $('#infoBox').val("Incorrect name"); 


} 

中的jsfiddle的上面是http://jsfiddle.net/yzqqr8ws/

+0

經過測試,它不起作用 – 2014-10-20 15:51:25

+0

對不起,我錯誤地理解你的問題。我現在將糾正它 – 2014-10-20 15:52:51

+0

謝謝你一切 – 2014-10-20 15:54:18