lyypf12 2009-09-10 09:28 采纳率: 100%
浏览 332
已采纳

js问题 取hidden标签的value出现"on",有代码(本人认为较离奇)

下列标签都自动生成,可是唯狂多项选择中的第四题,选择选项时得到的值中会有一个"on",

[b]多项选择中的@@@题选择时出现on不明白望高手指定迷津!谢谢[/b]



列表





<br> function doSearch(){<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = &quot;&quot;;<br> var errorInfo = &quot;&quot;;<br> if(errorInfo.length==0){<br> frmSearch.submit();<br> }else{<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = errorInfo;<br> }<br> }<br> function check(){<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = &quot;&quot;;<br> var errorInfo = &quot;&quot;;<br> getRadioValue();<br> getCheckBoxValue();<br> getTextareaValue();<br> if(errorInfo.length==0){<br> alert(radValue);<br> alert(chboxValue);<br> alert(textValue);<br> document.getElementById(&quot;submitStr1&quot;).value=radValue;<br> document.getElementById(&quot;submitStr2&quot;).value=chboxValue;<br> document.getElementById(&quot;submitStr3&quot;).value=textValue;<br> radValue=&quot;&quot;,chboxValue=&quot;&quot;,textValue=&quot;&quot;;<br> //frmAction.submit();<br> }else{<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = errorInfo;<br> }<br> }<br> var radValue=&quot;&quot;;<br> var chboxValue=&quot;&quot;;<br> var textValue=&quot;&quot;;<br> function getRadioValue()<br> {<br> var arr=document.getElementsByName(&quot;radioValue&quot;);<br> for(i=0;i&lt;arr.length;i++){<br> if(arr[i].value!=&quot;&quot;){<br> if(radValue==&quot;&quot;){<br> radValue+=arr[i].value;<br> }else{<br> radValue=radValue+&quot;-&quot;+arr[i].value<br> }<br> }<br> }<br> }</p> <pre><code> function getCheckBoxValue() { var arr=document.getElementsByName(&quot;checkboxValue&quot;); for(i=0;i&lt;arr.length;i++){ if(arr[i].value!=&quot;&quot;){ if(chboxValue==&quot;&quot;){ chboxValue+=arr[i].value; }else{ chboxValue=chboxValue+&quot;-&quot;+arr[i].value; } } } } function getTextareaValue() { var arr=document.getElementsByName(&quot;textareaValue&quot;); for(i=0;i&lt;arr.length;i++){ if(arr[i].value!=&quot;&quot;){ if(textValue==&quot;&quot;){ textValue+=arr[i].id+&quot;,&quot;+arr[i].value; }else{ textValue=textValue+&quot;-&quot;+arr[i].id+&quot;,&quot;+arr[i].value; } } } } function addStr (obj,questionId,optionId){ alert(questionId); if(obj.type==&quot;radio&quot;){ var radioObj= document.getElementById(questionId); radioObj.value=questionId+&quot;,&quot;+optionId; } else if(obj.type==&quot;checkbox&quot;){ var bool=true; var delBaVa=&quot;&quot;; var checkboxObje=document.getElementById(questionId); var str= checkboxObje.value; if(str!=&quot;&quot;&amp;&amp;str.length&gt;0){ arr= str.split(&quot;,&quot;); for(j=0;j&lt;arr.length;j++){ if(arr[j]==optionId){ bool=false; }else if(delBaVa==&quot;&quot;){ delBaVa=arr[0]; } else if(obj.checked==false){ if(arr[j]!=optionId){ bool=false; delBaVa =delBaVa+&quot;,&quot;+arr[j]; } } } if(obj.checked==false){ checkboxObje.value=delBaVa; } } if(str==&quot;&quot;&amp;&amp;str.length&lt;1){ checkboxObje.value=questionId+&quot;,&quot;+optionId; }else if(str!=&quot;&quot;&amp;&amp;str.length&gt;1){ if(bool){ checkboxObje.value=checkboxObje.value+&quot;,&quot;+optionId; } } var aaa=checkboxObje.value.split(&quot;,&quot;); if(aaa.length==1){ checkboxObje.value=&quot;&quot;; } alert(checkboxObje.value); } } </code></pre> <p>

说明信息:
问卷预览



  

一天天天一切从实际出发

  
  
一、 单选题

1、false
  12341234

  12341234


        <div>



              2、<font style="font-size:12px">123</font><br>
                <input type="hidden" name="radioValue" id="768" >

                    <div>
                        <INPUT TYPE="radio" NAME="768" id="769" onclick="addStr(this,'768','769')">&nbsp;&nbsp;123
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="768" id="768" onclick="addStr(this,'768','768')">&nbsp;&nbsp;123
                    </div> <br>





        <hr>
        </div>

        <div>



              3、<font style="font-size:12px">111</font><br>
                <input type="hidden" name="radioValue" id="447" >

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="963" onclick="addStr(this,'447','963')">&nbsp;&nbsp;231
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="961" onclick="addStr(this,'447','961')">&nbsp;&nbsp;123
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="962" onclick="addStr(this,'447','962')">&nbsp;&nbsp;321
                    </div> <br>





        <hr>
        </div>

        <div>



              4、<font style="font-size:12px">@@@@@@@@@@@@@@@@@@@@@@@@11</font><br>
                <input type="hidden" name="radioValue" id="701" >

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="688" onclick="addStr(this,'701','688')">&nbsp;&nbsp;222
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="689" onclick="addStr(this,'701','689')">&nbsp;&nbsp;433
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="687" onclick="addStr(this,'701','687')">&nbsp;&nbsp;111
                    </div> <br>





        <hr>
        </div>

        <div>




                  <div>二、 多选题</div> <br>


             1、<font style="font-size:12px">@@##!!@@##!!qq</font><br>
                <input type="hidden" name="checkboxValue" id="919" >

               <div><INPUT TYPE="checkbox" NAME="919" id="863" onclick="addStr(this,'919','863')">&nbsp;&nbsp;@@</div> <br>

               <div><INPUT TYPE="checkbox" NAME="919" id="864" onclick="addStr(this,'919','864')">&nbsp;&nbsp;##</div> <br>




        <hr>
        </div>

        <div>





             2、<font style="font-size:12px">@@##!!@@##!!qq</font><br>
                <input type="hidden" name="checkboxValue" id="920" >

               <div><INPUT TYPE="checkbox" NAME="920" id="866" onclick="addStr(this,'920','866')">&nbsp;&nbsp;##</div> <br>

               <div><INPUT TYPE="checkbox" NAME="920" id="865" onclick="addStr(this,'920','865')">&nbsp;&nbsp;@@</div> <br>




        <hr>
        </div>

        <div>





             3、<font style="font-size:12px">测试多多选</font><br>
                <input type="hidden" name="checkboxValue" id="745" >

               <div><INPUT TYPE="checkbox" NAME="745" id="721" onclick="addStr(this,'745','721')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="722" onclick="addStr(this,'745','722')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="723" onclick="addStr(this,'745','723')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="720" onclick="addStr(this,'745','720')">&nbsp;&nbsp;1212</div> <br>




        <hr>
        </div>

        <div>





             4、<font style="font-size:12px">@@@</font><br>
                <input type="hidden" name="checkboxValue" id="961" >

               <div><INPUT TYPE="checkbox" NAME="961" id="942" onclick="addStr(this,'961','942')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="944" onclick="addStr(this,'961','944')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="941" onclick="addStr(this,'961','941')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="943" onclick="addStr(this,'961','943')">&nbsp;&nbsp;12</div> <br>




        <hr>
        </div>

        <div>




                 <div>三、 问答题</div> <br>

             1、<font style="font-size:12px">`sz</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="648"></TEXTAREA>


        <hr>
        </div>

        <div>




             2、<font style="font-size:12px">dbdb</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="941"></TEXTAREA>


        <hr>
        </div>

        <div>




             3、<font style="font-size:12px">dbdb</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="942"></TEXTAREA>


        <hr>
        </div>

        <div>




             4、<font style="font-size:12px">新的题目</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="614"></TEXTAREA>


        <hr>
        </div>

        </td>
     <td>&nbsp;&nbsp;</td>
     </tr>
    <tr>
        <td>
            <input class="typebutton" type="button" value="提交" onclick="check()"/>&nbsp;&nbsp;&nbsp;&nbsp;
            <input class="typebutton" type="button" value="返回" onclick="window.location='/survey/svSurveyAction!list.action'">
        </td>
    </tr>
    </table>


[b]问题补充:[/b]
感谢 [color=blue][b]walnutprince (初级程序员)[/b][/color] 的提出的意见,我将会改正不好的编程习惯,标签中的用数字作ID 和NAME 只是没想到好的办法来解决,注释加上,变量命名修改了,下面是修改后的代码:



列表





<br> function doSearch(){<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = &quot;&quot;;<br> var errorInfo = &quot;&quot;;<br> if(errorInfo.length==0){<br> frmSearch.submit();<br> }else{<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = errorInfo;<br> }<br> }<br> function check(){<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = &quot;&quot;;<br> var errorInfo = &quot;&quot;;<br> getRadioValue();<br> getCheckBoxValue();<br> getTextareaValue();<br> if(errorInfo.length==0){<br> alert(radValue);<br> alert(chboxValue);<br> alert(textValue);<br> document.getElementById(&quot;submitStr1&quot;).value=radValue;<br> document.getElementById(&quot;submitStr2&quot;).value=chboxValue;<br> document.getElementById(&quot;submitStr3&quot;).value=textValue;<br> radValue=&quot;&quot;,chboxValue=&quot;&quot;,textValue=&quot;&quot;;<br> //frmAction.submit();<br> }else{<br> document.getElementById(&quot;errorSpan&quot;).innerHTML = errorInfo;<br> }<br> }<br> var radValue=&quot;&quot;; // 用来保存单选题的数据 单选题信息 例:&quot;题目1ID,选项*ID-题目1ID,选项*ID……-题目1ID,选项*ID&quot;<br> var chboxValue=&quot;&quot;; // 用来保存复选题的数据 复选题的信息 &quot;题目1ID,选项ID,选项ID,选项ID-题目1ID,选项*ID,选项ID,选项ID……-题目1ID,选项*ID,选项ID,选项ID&quot;<br> var textValue=&quot;&quot;; // 用来保存问答题的数据 问答题的信息 &quot;题目1ID,答案-题目1ID,答案……-题目1ID,答案&quot;<br> // 提交前加单选题的数据<br> function getRadioValue()<br> {<br> var arr=document.getElementsByName(&quot;radioValue&quot;);<br> for(i=0;i&lt;arr.length;i++){<br> if(arr[i].value!=&quot;&quot;){<br> if(radValue==&quot;&quot;){<br> radValue+=arr[i].value;<br> }else{<br> radValue=radValue+&quot;-&quot;+arr[i].value<br> }<br> }<br> }<br> }<br> // 提交加工复选题的数据<br> function getCheckBoxValue()<br> {<br> var arr=document.getElementsByName(&quot;checkboxValue&quot;);<br> for(i=0;i&lt;arr.length;i++){<br> if(arr[i].value!=&quot;&quot;){</p> <pre><code> if(chboxValue==&quot;&quot;){ chboxValue+=arr[i].value; }else{ chboxValue=chboxValue+&quot;-&quot;+arr[i].value; } } } } //提交前加工问答题的数据 function getTextareaValue() { var arr=document.getElementsByName(&quot;textareaValue&quot;); for(i=0;i&lt;arr.length;i++){ if(arr[i].value!=&quot;&quot;){ if(textValue==&quot;&quot;){ textValue+=arr[i].id+&quot;,&quot;+arr[i].value; }else{ textValue=textValue+&quot;-&quot;+arr[i].id+&quot;,&quot;+arr[i].value; } } } } function addStr (obj,questionId,optionId){ if(obj.type==&quot;radio&quot;){//单选题操作 var radioObj= document.getElementById(questionId); radioObj.value=questionId+&quot;,&quot;+optionId; } else if(obj.type==&quot;checkbox&quot;){ //复选题操作 var isChecked=true; //如果选中的项已被选中过为false,未选中过为true,默认为true var delBlackValue=&quot;&quot;; //当取消选中的项时,删除该值后保存余下的数据 var checkboxObje=document.getElementById(questionId); var str= checkboxObje.value; if(str!=&quot;&quot;&amp;&amp;str.length&gt;0){//如果没有选择任何一项时进行() arr= str.split(&quot;,&quot;); for(j=0;j&lt;arr.length;j++){ if(arr[j]==optionId){//如果取消选中项时,isCheckedm赋值为false表示曾经选中过,不执行下面的数据保存 isChecked=false; }else if(delBlackValue==&quot;&quot;){ //delBlackValue为空时保存题目ID delBlackValue=arr[0]; }//end else if(obj.checked==false){//如果取消选中状态,去掉被取消的数据 if(arr[j]!=optionId){ isChecked=false; delBlackValue =delBlackValue+&quot;,&quot;+arr[j]; } }//end } if(obj.checked==false){ checkboxObje.value=delBlackValue; } }//end if(str==&quot;&quot;&amp;&amp;str.length&lt;1){ checkboxObje.value=questionId+&quot;,&quot;+optionId; }//end else if(str!=&quot;&quot;&amp;&amp;str.length&gt;1){ if(isChecked){ checkboxObje.value=checkboxObje.value+&quot;,&quot;+optionId; } }//end var aaa=checkboxObje.value.split(&quot;,&quot;); if(aaa.length==1){ checkboxObje.value=&quot;&quot;; }//end alert(checkboxObje.value); } } </code></pre> <p>

说明信息:
问卷预览



  

一天天天一切从实际出发

  
  
一、 单选题

1、false
  12341234

  12341234


        <div>



              2、<font style="font-size:12px">123</font><br>
                <input type="hidden" name="radioValue" id="768" value="">

                    <div>
                        <INPUT TYPE="radio" NAME="768" id="768" onclick="addStr(this,'768','768')">&nbsp;&nbsp;123
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="768" id="769" onclick="addStr(this,'768','769')">&nbsp;&nbsp;123
                    </div> <br>





        <hr>
        </div>

        <div>



              3、<font style="font-size:12px">111</font><br>
                <input type="hidden" name="radioValue" id="447" value="">

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="962" onclick="addStr(this,'447','962')">&nbsp;&nbsp;321
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="961" onclick="addStr(this,'447','961')">&nbsp;&nbsp;123
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="447" id="963" onclick="addStr(this,'447','963')">&nbsp;&nbsp;231
                    </div> <br>





        <hr>
        </div>

        <div>



              4、<font style="font-size:12px">@@@@@@@@@@@@@@@@@@@@@@@@11</font><br>
                <input type="hidden" name="radioValue" id="701" value="">

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="689" onclick="addStr(this,'701','689')">&nbsp;&nbsp;433
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="688" onclick="addStr(this,'701','688')">&nbsp;&nbsp;222
                    </div> <br>

                    <div>
                        <INPUT TYPE="radio" NAME="701" id="687" onclick="addStr(this,'701','687')">&nbsp;&nbsp;111
                    </div> <br>





        <hr>
        </div>

        <div>




                  <div>二、 多选题</div> <br>


             1、<font style="font-size:12px">@@##!!@@##!!qq</font><br>
                <input type="hidden" name="checkboxValue" id="919" value="">

               <div><INPUT TYPE="checkbox" NAME="919" id="864" onclick="addStr(this,'919','864')">&nbsp;&nbsp;##</div> <br>

               <div><INPUT TYPE="checkbox" NAME="919" id="863" onclick="addStr(this,'919','863')">&nbsp;&nbsp;@@</div> <br>




        <hr>
        </div>

        <div>





             2、<font style="font-size:12px">@@##!!@@##!!qq</font><br>
                <input type="hidden" name="checkboxValue" id="920" value="">

               <div><INPUT TYPE="checkbox" NAME="920" id="866" onclick="addStr(this,'920','866')">&nbsp;&nbsp;##</div> <br>

               <div><INPUT TYPE="checkbox" NAME="920" id="865" onclick="addStr(this,'920','865')">&nbsp;&nbsp;@@</div> <br>




        <hr>
        </div>

        <div>





             3、<font style="font-size:12px">测试多多选</font><br>
                <input type="hidden" name="checkboxValue" id="745" value="">

               <div><INPUT TYPE="checkbox" NAME="745" id="721" onclick="addStr(this,'745','721')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="722" onclick="addStr(this,'745','722')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="723" onclick="addStr(this,'745','723')">&nbsp;&nbsp;1212</div> <br>

               <div><INPUT TYPE="checkbox" NAME="745" id="720" onclick="addStr(this,'745','720')">&nbsp;&nbsp;1212</div> <br>




        <hr>
        </div>

        <div>





             4、<font style="font-size:12px">@@@</font><br>
                <input type="hidden" name="checkboxValue" id="961" value="">

               <div><INPUT TYPE="checkbox" NAME="961" id="942" onclick="addStr(this,'961','942')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="943" onclick="addStr(this,'961','943')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="941" onclick="addStr(this,'961','941')">&nbsp;&nbsp;12</div> <br>

               <div><INPUT TYPE="checkbox" NAME="961" id="944" onclick="addStr(this,'961','944')">&nbsp;&nbsp;12</div> <br>




        <hr>
        </div>

        <div>




                 <div>三、 问答题</div> <br>

             1、<font style="font-size:12px">`sz</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="648"></TEXTAREA>


        <hr>
        </div>

        <div>




             2、<font style="font-size:12px">dbdb</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="941"></TEXTAREA>


        <hr>
        </div>

        <div>




             3、<font style="font-size:12px">dbdb</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="942"></TEXTAREA>


        <hr>
        </div>

        <div>




             4、<font style="font-size:12px">新的题目</font><br>
              <TEXTAREA  ROWS="10" COLS="100"  name="textareaValue" id="614"></TEXTAREA>


        <hr>
        </div>

        </td>
     <td>&nbsp;&nbsp;</td>
     </tr>
    <tr>
        <td>
            <input class="typebutton" type="button" value="提交" onclick="check()"/>&nbsp;&nbsp;&nbsp;&nbsp;
            <input class="typebutton" type="button" value="返回" onclick="window.location='/survey/svSurveyAction!list.action'">
        </td>
    </tr>
    </table>


  • 写回答

1条回答 默认 最新

  • walnutprince 2009-09-10 09:52
    关注

    先不说程序,说说规范
    1 js没有一点注释,没人愿意看,包括你自己
    2 name和id不要取纯数字 3 变量命名不规范 var bool=true;var delBaVa=""; //bool,delBaVa做什么用?
    4 for if else一大堆,什么地方是代码块结束? 写出下面那样就明晰一些了吧
    } //end if(str!=""&&str.length>0){

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号