2012-09-11 29 views
0

你能明白我的意思在這裏http://jsfiddle.net/ganymedes/eWghm/1/選擇1986年然後選擇你好終於選擇test2的。我的意思是,當你選擇test2時,我的腳本將顯示「0」文字,但它不顯示。獲取使用錯誤,並聲明在JavaScript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script></script> 
    <script type="text/javascript"> 
    var zero="0,00"; 
    var one="0,01"; 
    $(document).ready(function() {  
     $('#main').on('change', '.select-box', function() {  
      if ($(".select-box option[value='1']").prop('selected') && $(".select-box option[value='1986']").prop('selected')) {  
       $('#street').html("<option value='2'>test</option><option value='3'>test2</option>");  
      } 
      if ($(".select-box option[value='1']").prop('selected') && $(".select-box option[value='1986']").prop('selected') && $(".select-box option[value='3']").prop('selected')) { 
       document.getElementById("demo3").innerHTML=""+zero; 
      }  
     });  
     }); 
</script>  
<script type="text/javascript">  
    var x="",i; 
    for(i=1986;i<2013;i++) 
    { 
     x=x + "<option value='"+i+"'> " + i + "</option>"; 
    } 
    $(document).ready(function() { 
     document.getElementById("forloop").innerHTML="<select class='select-box'><option>Empty</option>"+x+"</select>"; 
    }); 
</script> 
</head> 
<body> 
    <p id="forloop"></p> 
     <div id="main"> 
      <select class="select-box"> 
      <option>Empty</option> 
      <option value="1">Hello</option>  
     </select> 
     <p></p> 
     <select class="select-box" id="street"> 
      <option>Empty<option> 
     </select> 
     </div>  
    <p id="demo3">  
    </body> 
</html> 
+0

我注意到當我選擇'test2'時,選擇框會回到'測試' – robbieAreBest

回答

1

你的三個選擇框具有相同的類,所以當第一個具有值1,你的第二個測試始終是真實的。使用ID而不是類名不同的元素,它會更理解(#year,#month,#day),並更容易維護...

+0

我已經添加了id但同樣的問題 – Teodoris

+0

http://jsfiddle.net/ganymedes/eWghm/8/ – Teodoris

+0

你不明白,在id上做你的jQuery測試而不是類。 jQuery無法區分您的選擇框,並且測試== 1可以通過任何選擇框 – dartaloufe

2

每次更改任何選擇此相同的處理程序被調用。第一個條件匹配重置第二個選擇內容。所有這些都應該被重寫爲更有針對性......但是如果你真的想要走這條路線,你應該交換if語句的順序並使第二個elseif。