2013-03-05 20 views
0

因此,我有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> 

我需要为了显示某一输入两个选择标记的组合。解释更多:如果我选择Saisie select中的Intervalle,这意味着间隔数据的类型只能是日期或数字(这是一个示例)。 所以我proceded这样:

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只需要第一个值:/任何暗示。提前致谢。

+0

什么是'#contain' ..?无处在你的html .. – Anujith 2013-03-05 08:23:30

+0

只是一个简单的div,其中我把结果

2013-03-05 08:26:05

+0

这给了我所选项目的价值 – 2013-03-05 08:51:52

回答

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/

+0

这需要JQuery – 2013-03-05 08:37:02

+1

以及你在你的解决方案中使用jQuery已经不是吗?也是你用jQuery标记你的问题 – gregjer 2013-03-05 08:38:22

+0

没错,我只是强调;)这不是我的问题的方式;) – 2013-03-05 08:40:28

0

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

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