代码
<script LANGUAGE="JavaScript"> 
function trim(str){  //删除左右两端的空格
   return str.replace(/(^\s*)|(\s*$)/g, "");
 }
 // 填写版本号
    function createCode() {
        var number = document.getElementById("number");
        var version = document.getElementById("<%=pageBean.EDITION %>");
        
        if(number.value==""){
               version.valmue="<%=pageBean.getEdition()%>";
               alert("<%=pageBean.getEdition()%>");
        }
        if(isNaN(number.value)==true){
               alert("请填写数字");
        }
        if(isNaN(number.value)==false){
               version.value="<%=pageBean.getAnotheredition()%>"+"."+trim(number.value);
        }
        
    }
</script>  <input type=text  maxlength=20 size=20 name="<%=pageBean.EDITION %>" style="width:170px" 
value="<%=pageBean.getEdition() %>" />

    <input type="button" onclick="createCode()" value="生成版本号">

    <input type=text  maxlength=4 size=4 name="number"  value=""/> 
javascript脚本是判断   <input type=text  maxlength=4 size=4 name="number"  value=""/> 这个文本框里输入的数字的
pageBean.getAnotheredition() = "2.0.2"和 pageBean.getEdition()="2.0.2.1"都是进入页面给赋值好了的 这个主要是想可以修改版本号 如果不填写的话应该显示原先的版本号pageBean.getEdition()="2.0.2.1"但是这里出问题了 "number"文本框不填写任何值的时候 第一个文本框里的值 显示为"2.0.2."少了一个1 不知道为什么alert一下 alert("<%=pageBean.getEdition()%>");显示的是"2.0.2.1"  但是文本框里就是不给显示最后一个1  痛苦、郁闷、求解!!!!

解决方案 »

  1.   

            if(number.value==""){
                   version.valmue="<%=pageBean.getEdition()%>";
                   alert("<%=pageBean.getEdition()%>");
            }
    我觉得既然这里你得到了想要的结果,怎么下面会不同呢?value="<%=pageBean.getEdition() %>" /> 是不是空格的问题额
      

  2.   

    写一个判断语句 判断"number"文本框是否为空
      

  3.   


    这句就是判断是否为空啊
    if(number.value==""){
                   version.valmue="<%=pageBean.getEdition()%>";
                   alert("<%=pageBean.getEdition()%>");
            }
      

  4.   

            if(isNaN(number.value)==false){
                   version.value="<%=pageBean.getAnotheredition()%>"+"."+trim(number.value);
            }莫非在这里被改了?在这后面再用 alert(" <%=pageBean.getEdition()%>"); 
      

  5.   


    试过了 alert显示正常  是2.0.2.1  没有少1if(isNaN(number.value)==false){ 
                  version.value=" <%=pageBean.getAnotheredition()%>"+"."+trim(number.value); 
                  alert(" <%=pageBean.getEdition()%>");
            } 
      

  6.   

    style="width:170px" 我觉得够了吧~
      

  7.   


    肯定够 maxlength=20  而且第一次进页面的时候就正确显示该值的
    <input type=text  maxlength=20 size=20 name="<%=pageBean.EDITION %>" style="width:170px" 
                value="<%=pageBean.getEdition()%>" />
      

  8.   

    也许number框为空的时候没有进到number.value==""的判断
    当number.value为undefined或者null的时候isNaN(number.value)==false的结果为真一_一
    用typeof number.value=='number'取代第一个判断44看呢喵~~?
      

  9.   


    也许number框为空的时候没有进到number.value==""的判断
    当number.value为undefined或者null的时候isNaN(number.value)==false的结果为真一_一
    用typeof number.value=='number'取代第一个判断44看呢喵~~?
      

  10.   



    <input type=text  maxlength=20 size=20 name=" <%=pageBean.EDITION %>" style="width:170px" 
                value=" <%=pageBean.getEdition()%>" />
    之后把结果打印出来看看,
    <%System.out.println(pageBean.getEdition())%>
      

  11.   

    呃,我发贴怎么老碰上这种问题,看起来发了没反映,其实已经发出去了喵~``对了,用alert看看到底进的哪个循环吧喵~``
      

  12.   


    哥给写全点被 我不太会js  typeof是什么函数? 干吗用的啊? 
      

  13.   


    if(typeof number.value=='number'){
      version.valmue="<%=pageBean.getEdition()%>";
      alert("<%=pageBean.getEdition()%>");
    }取代
    if(number.value==""){
                  version.valmue="<%=pageBean.getEdition()%>";
                  alert("<%=pageBean.getEdition()%>");
           }
    44看
    typeof 能判断类型的,js类型也就string,number,undefined,null,object大概这几个把喵~~`
      

  14.   

    呃,又忘记放代码框了...
    用 
    if(typeof number.value=='number'){ 
      version.valmue=" <%=pageBean.getEdition()%>"; 
      alert(" <%=pageBean.getEdition()%>"); 
    } 取代 
    if(number.value==""){ 
                  version.valmue=" <%=pageBean.getEdition()%>"; 
                  alert(" <%=pageBean.getEdition()%>"); 
          } 
    44看 
      

  15.   


    应该进入number.value==""判断了  
    if(number.value==""){
                   version.valmue="<%=pageBean.getEdition()%>";
                   alert("<%=pageBean.getEdition()%>");
            }
    在我点“生成版本号”按钮以后就弹出alert"2.0.2.1"了 说明应该进入number.value==""判断了
      

  16.   

    version.valmue,第一个判断里貌似有个手误.
    难道是这个问题喵??
      

  17.   

    在js每个方法里都看看变量,看有没有通过调用后改变的,如果没变看看JSP中的值,如果没变就神奇了~
      

  18.   

     <input type=text  maxlength=20 size=20 name="<%=pageBean.EDITION %>" style="width:170px" 
                value="<%=pageBean.getEdition() %>" />
                
            <input type="button" onclick="createCode()" value="生成版本号">
                
            <input type=text  maxlength=4 size=4 name="number"  value=""/> 
     var number = document.getElementById("number");
            var version = document.getElementById("<%=pageBean.EDITION %>");你里面就没有id=**** 怎么用getElementById?
      

  19.   


    getElementById这个获得的不是input 里面的name属性名吗?
      

  20.   

    getElementById这个获取的是id为***的值,
    要嘛就前后加个form 用document.****Form.number.value
      

  21.   


    哎呀确实少了个id  我加了id了
    <input type=text  maxlength=20 size=20 id="<%=pageBean.EDITION %>" 
    name="<%=pageBean.EDITION %>" style="width:170px" value="<%=pageBean.getEdition() %>" />

    <input type="button" onclick="createCode()" value="生成版本号">

    <input type=text  maxlength=4 size=4 name="number"  id="number" value=""/>不过还是一样的错误  少最后的字符2.0.2.
      

  22.   

    我发现一个现象  当文本框没有值的时候进入下面的判断if(number.value==""){
                   version.valmue="<%=pageBean.getEdition()%>";
                   alert("<%=pageBean.getEdition()%>");
            }
     弹出的的alert时 alert显示是对的2.0.2.1  但是文本框里没有变化  还是上一次的某个值比如说2.0.2.34
    我第一次点alert提示框没有消失  文本框里的值由2.0.2.34变成2.0.2.了 这就少了个最后以为字符  在点一下alert提示框才消失  文本框还是2.0.2. 这个错误显示
      

  23.   

    这是我那页的jsp源码<%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="com.res.product.domain.ProductPlan"%>
    <%@ page import="java.text.*"%>
    <%@ page import="java.util.*"%>
    <HTML>
    <HEAD>
    <%@ include file="Header.jsp"%>
    <TITLE><%=pageBean.getTitle()%></TITLE><script language="JavaScript" src="javascript/common.js"></script>
    <link href="css/style.css" rel="stylesheet" type="text/css" /></HEAD>
    <BODY>
    <script LANGUAGE="JavaScript"> 
    function trim(str){  //删除左右两端的空格
       return str.replace(/(^\s*)|(\s*$)/g, "");
     }


        // 填写版本号
        function createCode() {
            var number = document.getElementById("number");
            var version = document.getElementById("haha");
            
            if(number.value==""){
                   version.value="<%=pageBean.getEdition()%>";
                   
            }
            if(isNaN(number.value)==true){
                   alert("请填写数字");
            }
            if(isNaN(number.value)==false){
                   version.value="<%=pageBean.getAnotheredition()%>"+"."+trim(number.value);
                  
                   
            }
            
        }
    </script>
    <FORM NAME="form" ACTION="<%= pageBean.getHandlerPath() %>"  METHOD="post" enctype="multipart/form-data" >
    <INPUT TYPE=HIDDEN NAME="<%= pageBean.ACTION_NAME %>" VALUE="">
    <h2> 提 交 产 品  </h2>
    <TABLE width="70%" cellpadding="4" cellspacing="1" class="data_table" align="center">
                
                <tr>
                <td class="row_heading" width=20%> *产品名称:</td>
    <td>    
    <input type=text  maxlength=20 size=20 name="<%=pageBean.PRODUCT_NAME %>" style="width:170px" 
    value="<%=pageBean.getProductname() %>" readonly />

    </td>
                </tr>
              
                
                
                
                <tr>
    <td class="row_heading">   *提交时间:</td>

    <td>
    <input type=text  maxlength=20 size=20 name="<%=pageBean.COMMITTIME %>" style="width:170px" 
    value="<%=pageBean.getTime()%>"  readonly/>  <font color=red> 提交时间已经为您填写好了 </font>

    </td>
    </tr>

    <tr>
    <td class="row_heading">   *提交版本:</td>

    <td>

    <input type=text  maxlength=20 size=20 id="haha" name="<%=pageBean.EDITION %>" style="width:170px" 
    value="<%=pageBean.getEdition() %>" />

    <input type="button" onclick="createCode()" value="生成版本号">

    <input type=text  maxlength=4 size=4 name="number"  id="number" value=""/>

    </td>
    </tr>

    <tr>
    <td class="row_heading">   *提交说明:</td>

    <td>
    <TEXTAREA rows="5" cols="60" name="<%=pageBean.EXPLAIN %>"></TEXTAREA>
    </td>
    </tr>

    <tr>
    <td class="row_heading">   *提交人员:</td>

    <td>
    <input type=text  maxlength=20 size=20 name="<%=pageBean.COMMITUSER %>" style="width:170px" 
    value="<%=pageBean.getCommiter() %>" readonly/> <font color=red> 该项已经为您填写好了 </font>
    </td>
    </tr>

    <tr>
    <td class="row_heading">   *测试状态:</td>

    <td>
    <input type=text  maxlength=20 size=20 name="<%=pageBean.TESTSTATE %>" style="width:170px" 
    value="未测试" readonly/> <font color=red> 该项已经为您填写好了 </font>
    </td>
    </tr>

    <tr>
    <td class="row_heading"> *上传附件: </td>
    <td> <font color=red> 请在下面的浏览中选择您要上传的文件 每个文件大小不得超过100M </font></td>
    </tr>

    <tr>
    <td class="row_heading"> *文件1:</td>
    <td>
     <input name="file1" size="40" type="file">
    </td>
    </tr>

    <tr>
    <td class="row_heading"> *文件2:</td>
    <td>
     <input name="file2" size="40" type="file">
    </td>
    </tr>

    <tr>
    <td class="row_heading"> *文件3:</td>
    <td>
     <input name="file3" size="40" type="file">
    </td>
    </tr>



                </TABLE><br><br>
                
                
    <table align="center" width=40%>
    <tr align="center">
    <td>
    <input style="cursor:hand" type="button" name="Submit5" value="提交产品"  
    onclick="if(doubleCheck())submitForm('<%= pageBean.COMMIT_FILE_ACTION_HTML_VALUE%>');"/>

        </td>
        
        <td>
    <input style="cursor:pointer" type="button" name="Submit4" value="查看列表" 
    onclick="if(doubleCheck())submitForm('<%= pageBean.RETURN_COMMIT_LIST_ACTION_HTML_VALUE%>');"/>
    </td>
    </tr>
    </table>
    </FORM><%@ include file="footer.inc.jsp"%>
    </BODY>
    </HTML>
     好多啊  你们看着不眼花啊?
      

  24.   


    <html><%

    String EDITION="abc";
    String getEdition="2.0.2.1";

    String getAnotheredition="2.0.2";%><body>
    <input type=text  maxlength=20 size=20 id="<%=EDITION %>" name="<%=EDITION %>" style="width:170px" 
                value="<%=getEdition %>" />
                
            <input type="button" onclick="createCode()" value="生成版本号">
                
            <input type=text id="number" maxlength=4 size=4 name="number"  value=""/> 
    </body>
    </html>
    <script LANGUAGE="JavaScript"> 
        function trim(str){  //删除左右两端的空格
       return str.replace(/(^\s*)|(\s*$)/g, "");
     }
     // 填写版本号
        function createCode() {
            var number = document.getElementById("number");
            var version = document.getElementById("<%=EDITION %>");
            
            if(number.value==""){
                   version.value="<%=getEdition%>";
                   alert("<%=getEdition%>");
            }
            if(isNaN(number.value)==true){
                   alert("请填写数字");
            }
            if(isNaN(number.value)==false){
                   version.value="<%=getAnotheredition%>"+"."+trim(number.value);
            }
            
        }
    </script> 
    测试用的JSP 代码说明
      if(number.value==""){
                   version.value="<%=getEdition%>";
                   alert("<%=getEdition%>");
            }
    这里判断出 number为空 但是并没有返回,程序继续往下走哦 if(isNaN(number.value)==false){
                   version.value="<%=getAnotheredition%>"+"."+trim(number.value);
            }就到了这个地方,虽然你写了一个吃空格的trim ,但是,吃了空格后下面是什么都没有,于是 值变为 2.0.2.
      

  25.   


    哎呀 哥啊 ! 正解啊  总算解决了  我在每个if里都加了个return就ok了呵呵 if(number.value==""){
                   version.value="<%=pageBean.getEdition()%>";
                   return;
            }
            if(isNaN(number.value)==true){
                   alert("请填写数字");
                   return;
            }
            if(isNaN(number.value)==false){
                   version.value="<%=pageBean.getAnotheredition()%>"+"."+trim(number.value);
                  return;
            }
      

  26.   


    加了return之后就可以了 但是如果文本框里只加空格的话还是要出原来的错误 这个怎么解决?
    我写了个嘴笨的方法 。
    if(number.value=="" || number.value==" " || number.value=="  "|| number.value=="   "||    number.value=="    ")
           {
                   version.value="<%=pageBean.getEdition()%>";
                   return;
            }
    有什么其他方法判断空格没? 
      

  27.   

    已经判断是否为数字了  但是如果只填写空格的话  还是进入这个判断了。
    if(isNaN(number.value)==false){
                   version.value="<%=pageBean.getAnotheredition()%>"+"."+trim(number.value);
            }是不是isNaN这个函数不能只判断空格?
      

  28.   


    function   isDigital(str)         
     {   
      for(ilen=0;ilen<str.length;ilen++)   
      {   
      if(str.charAt(ilen)   <   '0'   ||   str.charAt(ilen)   >   '9'   )   
      {   
    return   false;   
      }         
      }   
      return   true;   
      }给你一个判断数字的
      

  29.   

    MARK
    PS: 
    我的目标是 ----> ^_^