如何刷新选择字段而不刷新整页

问题描述:

我有两个级别的下拉(select box)如何刷新选择字段而不刷新整页

如果我选择的拳头级的东西,然后第二个下拉组将根据拳头选择

前出现:有我在第一次6级的选择,每个选择我有页面上的其他6下拉设置隐藏。作为用户选择,它将显示第二级下拉菜单。

这是第一级

<select name="TapeType" id="TapeType"> 
      <option value="s">&lt;Select&gt;</option> 
      <option value="Polypropylene Tape" id="PT">POLYPROPYLENE TAPE</option> 
      <option value="HD Polypropylene Tape">HD POLYPROPYLENE TAPE</option> 
      <option value="X HD Polypropylene Tape">X HD POLYPROPYLENE TAPE</option> 
      <option value="PVC Tape">PVC TAPE</option> 
      <option value="HD PVC TAPE">HD PVC TAPE</option> 
      <option value="Reinforced Paper Tape">REINFORCED PAPER TAPE</option> 
      <option value="Flatback Tape">FLATBACK TAPE</option> 

     </select> 

这是第二级

<select name="TapeColorPT" id="TapeColorPT" class="toggledDropDown"> 
      <option value="Tan">Tan</option> 
      <option value="White">White</option> 
      <option value="Clear">Clear</option> 
      <option value="Red">Red</option> 
      <option value="Orange">Orange</option> 
      <option value="Yellow">Yellow</option>  
     </select> 
<select name="TapeColorHPT" id="TapeColorHPT" class="toggledDropDown"> 
      <option value="Tan">Tan</option> 
      <option value="White">White</option> 
      <option value="Clear">Clear</option> 
     </select> 

两个示例对于显示每个下拉我用这个方法与js

$('.toggledDropDown').hide(); 

$('#TapeType').change(function() {    

    if ($('#TapeType option:selected').text() == "POLYPROPYLENE TAPE"){ 
     $('#TapeColorPT').show(); 

    } 
    else { 
      $('#TapeColorPT').hide(); 

if ($('#TapeType option:selected').val() == "HD Polypropylene Tape"){ 
     $('#TapeColorHPT').show();  
    } 
    else { 
      $('#TapeColorHPT').hide(); 
    } 
    }}); 

我的问题是

例如:当我选择1一个第一级和我的第二个层次选择3。然后我回到第一级并选择2,因此出现另一组第二级下拉菜单。之后,当我回到第一级选择1时,我以前在第二级选择3会在那里。当我再次回来时,我希望它没有选择。

所以我想我可以做,如果有人让我知道如何刷新选择框javascript(js)而不刷新整个页面。

+0

所以你想要动态绑定数据到

+0

当你隐藏次要下拉菜单时,将它们的值设置为“” – 2013-03-20 15:46:03

+0

谢谢你试图帮助我,Mohamed Ali给了我很好的解决方案。它的工作很好。感谢朋友 – 2013-03-21 15:24:48

你可以尝试修改您的js函数到这一点:

$('#TapeType').change(function() { 

    //you will hide the second and third level 
    $('.toggledDropDown').hide(); 

    //here i reset the second and third level to defaults by selecting the top one 
    $('#TapeColorPT,#TapeColorHPT').attr('value','Tan'); 

    //here get the value od the first dropdown 
    var tapeTypeVal = $('#TapeType').val(); 

    //here i switch for the 6 option of the first dropdown to know which dropdown will 
    //be appear 
    switch (tapeTypeVal) { 
    case 'POLYPROPYLENE TAPE': 
     $('#TapeColorPT').show(); 
     break; 
    case 'HD Polypropylene Tape': 
     $('#TapeColorHPT').show(); 
     break; 
    } 

}); 
+0

朋友感谢您的快速回复,但我不认为这将满足我的问题的答案或可能是我不明白你的答案。 :( – 2013-03-20 16:23:11

+0

@YohanAluthwala你想重置01和02选择第一个选项的变化吗? – 2013-03-20 16:39:38

+0

是的我想重置第二级(#TapeColorPT,#TapeColorHPT)选择变化第一级(#TapeType) – 2013-03-20 16:42:45

尝试把你的代码最上面一行还onchange事件处理程序的身体内部:

$('.toggledDropDown').hide(); /* existing top line of code can remain here */ 

$('#TapeType').change(function() {    
$('.toggledDropDown').hide(); /* but also add it right here */ 
if ($('#TapeType option:selected').text() == "POLYPROPYLENE TAPE"){ 
    $('#TapeColorPT').show(); 

} 
... 

完整代码

$('.toggledDropDown').hide(); 

$('#TapeType').change(function() {    

$('.toggledDropDown').hide(); /* adding this line here is the only change */ 

if ($('#TapeType option:selected').text() == "POLYPROPYLENE TAPE"){ 
    $('#TapeColorPT').show(); 

} 
else { 
     $('#TapeColorPT').hide(); 

if ($('#TapeType option:selected').val() == "HD Polypropylene Tape"){ 
    $('#TapeColorHPT').show();  
} 
else { 
     $('#TapeColorHPT').hide(); 
} 
}}); 
+0

你可以给我发什么样的代码,我必须在这里添加? – 2013-03-20 16:15:27

+0

......只是表示代码的其余部分。您只需复制代码的第一行“$('。toggledDropDown')。hide();”并将其放入.change事件函数中。 – 2013-03-20 16:39:14

+0

没有朋友没有工作。以上任何方式穆罕默德阿里发送解决方案。感谢您尝试帮助我。我可能需要你的帮助功能:) – 2013-03-21 04:00:12