Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的函数跳过if-then-else语句_Javascript - Fatal编程技术网

Javascript 我的函数跳过if-then-else语句

Javascript 我的函数跳过if-then-else语句,javascript,Javascript,我有这个功能,可以扫描9个元素。我已经排除故障4个多小时了。问题是,如果警报框从其中一个元素检测到“无”值,我希望警报框只显示一次。另一个问题是,当其中一个元素不等于“无”时,其他元素忽略此语句: if (obj.value == "none"){ alert("You must specify the item's size!"); } 以下是整个功能: fun

我有这个功能,可以扫描9个元素。我已经排除故障4个多小时了。问题是,如果警报框从其中一个元素检测到“无”值,我希望警报框只显示一次。另一个问题是,当其中一个元素不等于“无”时,其他元素忽略此语句:

                  if (obj.value == "none"){
                      alert("You must specify the item's size!");      
                  }  
以下是整个功能:

function swapImage(id,primary,secondary) {
     src=document.getElementById(id).src;


    if (src.match(primary)) {


                  var arr = new Array();
                  arr = document.getElementsByName('jumpMenu');

                  alert("total objects with name \"jumpMenu\" = \n" + arr.length);

                  for(var i = 0; i < arr.length; i++)
                  {
                      var obj = document.getElementsByName('jumpMenu').item(i);
                    //   alert(obj.id + " =  " + obj.value);

                       if (obj.value == "none"){    

                          alert("You must specify the item's size!");      
                      }  

                      else
                      {   

                      document.getElementById(id).src=secondary;     

                      }
                }
    }
    else 
    {
      location.href='blog.php';
    }
  }
功能交换页(id、主要、次要){
src=document.getElementById(id).src;
if(src.match(主)){
var arr=新数组();
arr=document.getElementsByName('jumpMenu');
警报(“名称为\“jumpMenu\”=\n“+arr.length的对象总数”);
对于(变量i=0;i
它相当长,因为我有9个元素,所以我只在这里插入其中一个元素:

<table width="200" border="0" align="center">
          <tr>
            <th width="63">Price:</th>
            <th width="127"> <?php echo $final_array[0][1]; ?></th>
          </tr>
          <tr>         
            <th>Size:</th>
            <form method="post" name="form" id="form" action="blog.php">
            <th><select name="jumpMenu" id="jumpMenu" class="hirap">
                <option value ="none">Enter Item Size</option>
                <option value ="S">6</option>
                <option value ="M">8</option>
                <option value ="L">10</option>
                <option value ="XL">12</option>
                <option value ="XXL">14</option>
              </select>
            </th>
            <th><img
                    id="tadi"
                    onclick="swapImage(
                      'tadi',
                      'images/submit.gif',
                      'images/so.gif'
                    )"                      
                    src="images/submit.gif"
                    title="View Order"
                  />            

          </th>
            </form>
          </tr>
      </table>

价格:
尺寸:
输入项目大小
6.
8.
10
12
14

我还不清楚什么是“有效”数据。以下哪项描述了您的有效数据

  • 所有菜单都应选择除
    none
    以外的值,(因此
    6
    10
    8
    none
    6
    无效,但
    6
    10
    8
    12
    6
    将有效)
  • 至少有一个菜单应选择除
    none
    以外的值(因此
    6
    10
    8
    none
    6
    将有效,但
    none
    none
    none
    none
    将无效)
  • 对于案例1,引入一个变量,记录是否已指定所有大小,如果已指定,则在循环结束时执行必要的操作:

                var allOkay = true;
                for(var i = 0; i < arr.length; i++)
                {
                    var obj = document.getElementsByName('jumpMenu').item(i);
                    //   alert(obj.id + " =  " + obj.value);
    
                    if (obj.value === "none"){    
    
                        alert("You must specify the item's size!");      
                        allOkay = false;
                        break;
                    }  
                }
    
                if (allOkay)
                {
                    document.getElementById(id).src=secondary;
                }
    
                var allNone = true;
                for(var i = 0; i < arr.length; i++)
                {
                    var obj = document.getElementsByName('jumpMenu').item(i);
                    //   alert(obj.id + " =  " + obj.value);
    
                    if (obj.value !== "none"){    
    
                        document.getElementById(id).src=secondary;
                        allNone = false;
                        break;
                    }  
                }
    
                if (allNone)
                {
                    alert("You must specify the item's size!");
                }
    

    感谢所有试图帮助我的人非常感谢我解决了问题这里是我问题的解决方案:

    <script type="text/javascript">
    function swapImage(id, primary, secondary,ide) {
    src = document.getElementById(id).src;
    
    if (src.match(primary)) {
    
        var allNone = true;
    
        var arr = new Array();
    
        arr = document.getElementById(ide);
      //  alert(arr.value +"asd"+ arr.length);
    
        for(var i = arr.length - 1; i >= 0; i-=1) {
    
            // var obj = arr.getElementsByName('jumpMenu').item(i);
    
            // alert(obj.value);
    
           if (arr.value != "none"){    
    
                    document.getElementById(id).src=secondary;
                    allNone = false;
                    break;
                }  
        }
          if (allNone)
            {
                alert("You must specify the item's size!");
            }
    
    } else {
        location.href = 'blog.php';
    }
    
    
    功能交换页(id、主、辅、ide){
    src=document.getElementById(id).src;
    if(src.match(主)){
    var-allNone=true;
    var arr=新数组();
    arr=document.getElementById(ide);
    //警报(arr.value+“asd”+arr.length);
    对于(变量i=arr.length-1;i>=0;i-=1){
    //var obj=arr.getElementsByName('jumpMenu')。项(i);
    //警报(目标值);
    如果(arr.value!=“无”){
    document.getElementById(id).src=secondary;
    allNone=false;
    打破
    }  
    }
    如果(全部无)
    {
    警报(“您必须指定项目的大小!”);
    }
    }否则{
    location.href='blog.php';
    }
    
    }


    这与jQuery无关。请不要添加与问题不匹配的标记。我已将其包含在问题中控制台中有错误吗?啊,我不知道控制台中有错误。.啊,我正在使用netbeansoh抱歉。.我之前确实更改了函数的名称。.哈哈,不知道我为什么这么做。抱歉。.啊,我尝试了第一种情况,结果是我甚至选择了一个值而不是“无”它仍然会提示警告消息。而在第二种情况下,当我对一个元素选择“无”时,它会起作用,但问题是其他元素也会改变图标。@MArioSiAko:你问的问题仍然很不清楚。我仍然不确定上面两个案例中哪一个适合你的情况。你能解释一下你所说的“其他元素也会改变图标”是什么意思吗?好的,这就是我的网页看起来的样子,啊,旁边有一个1下拉菜单和一个提交图标,下拉菜单就是我们正在做的。它有数字和“无”选项。因此,如果您选择其中一个数字,并单击旁边的提交图标,图标将被新图标更改,但如果选项为“无”,则无法更改为新图标,并将出现一个警报消息框,即“您必须指定项目的大小”.所以这两种情况都符合我的要求..我有9个下拉菜单,每个菜单的所有选项都有“无”、6、8、10、12和14..希望这能让您理解..tnxpatience@MArioSiAko:通过说“有一个1下拉菜单”和“我有9个下拉菜单”,你是在自相矛盾。或者你有9个提交按钮吗?每个菜单一份?在这种情况下,每个提交按钮应该做什么?它应该只检查同一行中的菜单吗?