我的jsp前台有一个表单,我用原生JS写一个页面各个输入项不为空的判断,浏览器为opera,有一个很奇怪的现象就是
当如下代码
    else if (document.getElementById('recommended_alias'))  {
         if (form1.recommended_alias.value.trim()=="") {
              alert("请填写推荐别名!");
              form1.recommended_alias.focus();
              return false;
             }
     }    else if(form1.file.value.trim()==""){
      alert("请选择上传文件!");
      form1.file.focus();
      return false;
    }                            当上面这个else if执行完毕时,下面这个else if就不执行了 ,请教下这是为什么啊 谢谢了 等 急

解决方案 »

  1.   

    我如果把else if 换成 if就可以了,不懂,请大家指点啊
      

  2.   

    if(){}
    [else if(){}]
    [else if(){}][else{}][]是表示可选的这是if条件判断的基本结构。。楼主没有首先用if判断,怎么能直接写else if 呢
      

  3.   

    首先if/else语句最多只能执行当中的一个判断。
    所以楼主的代码可以改成这样:else if (document.getElementById('recommended_alias')) {
      if (form1.recommended_alias.value.trim()=="") {
      alert("请填写推荐别名!");
      form1.recommended_alias.focus();
      return false;
      }
    }if(form1.file.value.trim()==""){
      alert("请选择上传文件!");
      form1.file.focus();
      return false;
    }
      

  4.   

    if/else if语句最多执行一个,且是按照顺序来执行的。不会出现执行两个的情况(即使下面的判断为true)。
    而楼主上面那种就是要求一个if/else if语句能够执行当中的两个判断。所以,当然不行。所以下面这个
    else if(form1.file.value.trim()==""){
      alert("请选择上传文件!");
      form1.file.focus();
      return false;
      }
    else if子句独立成一个if语句就可以了。