0

各グループでどのラジオボタンが選択されているかに応じて、いくつかのラジオボタングループがあります。その特定の回答は、配列に事前設定された1つ以上の値を返す必要があります。

したがって、グループ 1 で 1 が選択されている場合、A と B の値は両方とも 1 ずつ増加し、2 が選択されている場合は B、C と D の値が増加します。最後に、最も多くのポイント/インクリメントを含むレターが返されます (フォームが送信されたとき)。

どうすればこれを進めることができますか?出発点は、選択したラジオボタンを返し、それらを正しい配列インデックスに一致させ、その配列内の値 (文字) を最も増分してチェックし、その値を返すことだと思いますか?

  $(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>
4

1 に答える 1

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;
}

これが正しい答えになることを願っています

于 2012-10-16T12:27:30.767 に答える