2012-10-16 27 views
0

我有幾個單選按鈕組,取決於每個組中選擇哪個單選按鈕,該特定答案需要返回一個或多個預設在數組中的值。將單選按鈕選擇值與數組匹配

因此,如果在組1中選擇1,則A & B值都增加1,如果選擇2,則B增加C & D等等。最後,應遞交大多數積分/增量的信件(當提交表格時)

我該如何解決這個問題?我認爲出發點是返回選定的單選按鈕,將它們匹配到正確的數組索引,然後檢查該數組(字母)中增量最大的值並返回其值(s)?

$(function(){ 

    var group1 = new Array(); 
     group1[0] = "A, B"; 
     group1[1] = "B, C, D"; 
     group1[2] = "E, B"; 
     group1[3] = "B"; 
     group1[4] = "F"; 

    var group2 = new Array(); 
     group2[0] = "D, A"; 
     group2[1] = "D, C"; 
     group2[2] = "B, F, E"; 
     group2[3] = "A"; 
     group2[4] = "B, D"; 

    $('form').submit(function(){ 

     var checked = $('input:radio:checked').length; 

     //This is as far as I am 

    }); 

    }); 

    <form> 
     <input type="radio" name="group1" value="1" id="q1-1" /> 1 
     <input type="radio" name="group1" value="2" id="q1-2" /> 2 
     <input type="radio" name="group1" value="3" id="q1-3" /> 3 
     <input type="radio" name="group1" value="4" id="q1-4" /> 4 
     <input type="radio" name="group1" value="5" id="q1-5" /> 5 

     <br /><br /> 

     <input type="radio" name="group2" value="1" id="q2-1" /> 1 
     <input type="radio" name="group2" value="2" id="q2-2" /> 2 
     <input type="radio" name="group2" value="3" id="q2-3" /> 3 
     <input type="radio" name="group2" value="4" id="q2-4" /> 4 
     <input type="radio" name="group2" value="5" id="q2-5" /> 5 

     <input type="submit" value="submit" /> 
    </form> 

回答

0

檢查它會給你你創建數組的結果,所以我用開關來選擇數組中的值。

var temp=0; 
var result = []; 
var maxvalue = 0; 
var topQualityjob = ""; 
    $('input:radio:checked').each(function() { 
     switch ($(this).attr("name")) { 
      case "group1": 
       $(group1[parseInt($(this).val()) - 1].split(",")).each(function() { 
        result.push(this); 
        temp = getaccurance(result, this); 
        if (maxvalue < temp) { 
         maxvalue = temp; 
         topQualityjob = this; 
        } 
       }); 
       break; 
      case "group2": 
       $(group2[parseInt($(this).val()) - 1].split(",")).each(function() { 
        result.push(this); 
        temp = getaccurance(result, this); 
        if (maxvalue < temp) { 
         maxvalue = temp; 
         topQualityjob = this; 
        } 
       }); 
       break; 
     } 
    }); 
    alert(topQualityjob); 

}

function getaccurance(result, val) { 
    num = 0; 
    for (i = 0; i < result.length; i++) { 
     if (result[i] == val) 
      num++; 
    } 
    return num; 
} 

希望這會給正確的答案

+0

感謝Meraj,我覺得我幾乎沒有,但我還沒有完全得到它。我把更新的腳本放在js小提琴上,我仍然無法獲得結果變量的增量,但是如果我多玩一點,我相信我會得到它。 http://jsfiddle.net/hANsE/4/ – Rick

+0

是的更新代碼很好用!謝謝,非常感謝。 – Rick

+0

不客氣 – Meraj