2016-11-21 103 views
0

如何检查是否选择了三项中的任何一项。我的选项表2列出看起来像这样如何检查是否在JavaScript中选择了任何选项

<div class="fruits"> 
     <select> 
      <option>apple</option> 
      <option>orange</option> 
      <option>banana</option> 
      <option>hello</option> 
      <option>Bye</option> 
     <select> 
    </div> 

    <div id="criteria"> 
     <select> 
      <option>fruits</option> 
      <option>in season</option> 
      <option>expensive</option> 
     </select> 
    </div> 

我想使“标准” ID选项只读如果有三个选项苹果,橘子,香蕉都没有选择。可以选择课程“水果”中的多个选项。喜欢用户可以选择苹果或你好,你好或再见苹果和香蕉。

什么是可能的逻辑。我已经尝试了几个像维护与苹果,橙色和香蕉键和对象价值是他们的点击次数,如果计数是0的所有键然后我会隐藏另一个选项标签。

我尝试了其他方法。这一个 代码是在这里:

<script> 
    var count = 0; 
    fruitsList = document.getElementsByClassName("fruits"); 
    var countObj = { 
      apple: 0, 
      orange:0, 
      banana:0, 
     } 
    for(var i = 0; i<= fruitsList.length-1 ; i++){ 
     fruitsList[i].addEventListener("click", function(){ 
     \* have to grab the value of the elements because the list of elements is generated by PHP and there will be plenty of elements *\ 
    var threeOption = this.getAttribute("value"); 
      if(fourOption == 'apple' || fourOption == 'orange' || fourOption == 'banana'){ 
    if(this.selected == true){ 
        countObj[fourOption]++; 
        } 
       else if(this.selected == false){ 
        countObj[fourOption]--; 
       } 
       else{ 
        countObj[fourOption]--; 
       } 
      } 
    for (var key in countObj) { 
       if (Object.prototype.hasOwnProperty.call(countObj, key)) { 
        var val = countObj[key]; 
        if(val>0){ 
         count = 1; 
        } 
       } 
      } 
    if(count==1){ 
       for(var i = 0 ; i<=5 ; i++){ 
        document.querySelectorAll("#criteria option")[i].removeAttribute("disabled"); 
        } 
       } 
      else{ 
     for(var i = 0 ; i<=5 ; i++){ 
    document.querySelectorAll("#criteria option")[i].setAttribute("disabled","true"); 
     } 
     } 
    }); 
    } 
</script> 

的选项应若再苹果,橙子或香蕉的重新出现任何重新选择,如果不选择,他们应该成为readOnly的。 请推荐一个逻辑。我第一次发布问题。请让我知道,如果我误解了任何地方,我将很乐意在未来纠正自己。 谢谢

回答

0

您可能需要使用getComputedStyle

未经测试,但你可以试试这个

function setElement(){ 
// pass the element 
window.onscroll = function(){scroll(element)}; 
} 

function scroll(elem){ 
eHeight = window.getComputedStyle(elem,null).getPropertyValue("height"); 
     //Rest of the code 
} 
+0

我怎么能在这方面的getComputedStyle使用?无论如何得到元素的当前状态,如天气选择与否。 – Neetigya

相关问题