2012-03-03 20 views
0

我正在重置基於另一個組合框的組合框。我有2個組合框,當我選擇01然後second combo被激活了,當我從2nd combo選擇一個選項,然後一個text box出現,而當我選擇「請選擇」從first combo然後2nd combo是自動復位(禁止),但爲什麼文本框不會消失?組合框復位時隱藏文本框

當除了第一個選項一個選項是從第二個組合中選擇,我填充像一個文本框:

$(function() { 
    //This hides all initial textboxes 
    $('label').hide(); 
    $('#secondcombo').change(function() { 
     //This saves some time by caching the jquery value 
     var val = $(this).val(); 
     //this hides any boxes that the previous selection might have left open 
     $('label').hide(); 
     //This just opens the ones we want based off the selection 
     switch (val) { 
     case 'option1': 
     case 'option4': 
     case 'other': 
      $('#label1').show(); 
      break; 
     } 
    }); 
    //I'm not really sure why these are here 
    $("input").focus(function() { 
     $(this).next("span").fadeIn(500); 
    }).blur(function() { 
     $(this).next("span").fadeOut(1000); 
    }); 
});​ 

HTML

<select id='firstcombo'> 
    <option value="">please select</option> 
    <option value="01">01</option> 
    <option value="02">02</option> 
    </select> 

    <select id='secondcombo' disabled="true"> 
    <option value="_">- select -</option> 
    <option value="option1">data</option> 
    <option value="option2">data</option> 
    </select> 

    <label id="label1" for="option1"> 
     <input type="text" id="option1" /> 
    </label> 

回答

1

這是沒有隱瞞,因爲對於任何情況下你在這個代碼中的第一個組合。

您可以使用下面的代碼隱藏這個

<select id='firstcombo' onchange="jQuery('label#label1').hide();"> 
    <option value="">please select</option> 
    <option value="01">01</option> 
    <option value="02">02</option> 
    </select> 

這會爲你工作。

+0

這是最簡單的方法...如果你想要做的事更多的功能,這個然後綁定這個像第二個組合 – 2012-03-03 07:13:05

+0

感謝Shivam,但如果我有一個以上的標籤,該標籤是label1,label2,label3 ...那麼我該如何編輯這個'''jQuery('label#label1')。hide();'? – Tom 2012-03-03 07:18:04

+0

@tom:你只能使用'$('label')。hide )',如果你不知道你的標籤都抱着IDS。 – codef0rmer 2012-03-03 07:22:08

1

結賬demo這裏

$(function() { 
    $('label').hide(); 
    $('#secondcombo').attr('disabled',true);  

    $('#firstcombo').change(function(){ 
     if($(this).val()===""){ 
      $('#secondcombo').attr('disabled',true); 
      $('label').hide(); //added this 
     }else{ 
      $('#secondcombo').attr('disabled',false); 
     } 
    }); 
    $('#secondcombo').change(function() { 
     $('label').hide(); 
     var val = $(this).val(); 
     switch (val) { 
     case 'option1': 
     case 'option4': 
     case 'other': 
      $('#label1').show(); //u can use fadeIn() here as well 
      break; 
     } 
    }); 
});​ 
+0

是的,它是相同的,但是當第一個組合被重置,然後第二個組合被禁用,但該文本框並沒有消失,我認爲你的小提琴需要稍微修改,你幾乎完成 – Tom 2012-03-03 07:29:19

+0

http:// jsfiddle。淨/ cdMAH/1 /應該爲你工作 – frictionlesspulley 2012-03-03 07:32:38

+0

是的,謝謝frictionlesspulley它工作正常! – Tom 2012-03-03 07:39:43