获取多个选择标记的值组合

时间:2013-03-05 08:12:19

标签: javascript jquery html5

所以我有2个选择标签,一个选择数据类型,另一个选择该数据的形式。 第一个标记Données

<select style="display: block;" name="Donnee" id="Donnee" onchange="getComboB(this)" required>
<option value="">Choisir ...</option>
<option value="Alphanumérique">Alphanumérique</option>
<option value="Numérique">Numérique</option>
<option value="Booléen">Booléen</option>
<option value="Date">Date</option>
</select>

第二个标记Saisie

<select style="display: block;" name="Saisie" id="Saisie" onchange="getComboA(this)" required>
<option value="">Choisir ...</option>
<option value="Libre">Valeur Libre</option>
<option value="Multiples">Valeurs Multiples</option>
<option value="Intervalle">Intervalle</option>
</select>

我需要获得两个select标签的组合才能显示某个输入。要解释更多:如果我在Saisie中选择Intervalle选择哪个意味着区间数据的类型只能是日期或数字(这是一个例子)。 所以我采用了这种方式:

value_Donnee='';
function getComboB(sel) {
    var value = sel.options[sel.selectedIndex].value; 
    value_Donnee = value;
    }
function getComboA(sel) {
    var value = sel.options[sel.selectedIndex].value; 

    if(value == "Libre")
    {
    $("#contain").html('');
    }

    else if(value == "Multiples")
    {
    $("#contain").html('');
    $("#contain").html('Multiples');
    }
    else
    {
    $("#contain").html('');
        if(value_Donnee == "Numérique")
            {
            $("#contain").html('');
            $("#contain").html('Num');
            }
        else if (value_Donnee == "Date")
            {
            $("#contain").html('');
            $("#contain").html('Date');
            }
        else
            {
            $("#contain").html('');
            $("#contain").html('Le type des données ne peut être que Date ou Numérique');
            }

    }

}

问题是它没有考虑getComboB它只取第一个值:/任何提示。提前谢谢。

3 个答案:

答案 0 :(得分:0)

我不确定你的逻辑,但你可以尝试这样的事情:

$('select').change(function(){
    var donnee = $('#Donnee').val();
    var saisie = $('#Saisie').val();

    if(saisie == "Libre")
    {
        $("#contain").html('');
    }
    else if(saisie == "Multiples")
    {
        $("#contain").html('Multiples');
    }
    else
    {
        if(donnee == "Numérique")
        {
            $("#contain").html('Num');
        }
        else if (donnee == "Date")
        {
            $("#contain").html('Date');
        }
        else
        {
            $("#contain").html('Le type des données ne peut être que Date ou Numérique');
        }
    }
});

小提琴http://jsfiddle.net/Bb6sH/

答案 1 :(得分:0)

我确定你的jquery包括路径有问题。因为我用简单的$("#contain").html替换了alert并且一切运作良好。

答案 2 :(得分:0)

我不知道这是不是你的意思,但你可以试试这个:

      $(document).ready(function(){
        $('#Donnee, #Saisie'). change(function(){
          $('#contain').html(test());
        });
      });

      function test(){
        var donnee = $('#Donnee option:selected').val();
        var saisie = $('#Saisie option:selected').val();
        if (donnee == 'Numérique'){
          donnee = 'Numérique';
        } else if (donnee == 'Date'){
          donnee = 'Date';
        } else {
          donnee = 'Le type des données ne peut être que Date ou Numérique';
        }
        return saisie + ' ' +donnee;
      }