function xiaoshu(aa){
if(isNaN(aa.value) || aa.value<1 || aa.value.length>5  || aa.value>0){
alert("请填入数字并且精确到小数点后三位")
document.getElementById("xiaoshutt").value="" 
document.getElementById("xiaoshutt").focus()
  <input id="item_weight"  id="xiaoshutt" onblur="xiaoshu(this)"    name="item_weight" type="text" class="textbox_short" maxlength="10"/>我做了一个js控制text里的值必须为小于1精确到小数点后三位且不为负的数字,用我上面的方法点击保存按钮时,正常提示,此时光标如果不重新点击text框里而再次点保存就存进去了,只提示一次...我想把它弄成onClick的方法放在保存按钮上,让他每次点保存的时候都根据判断提示.......应该怎么改...求教...

解决方案 »

  1.   

    1、为啥input有俩id?这样getElementById会出问题吧……
    2、判断好像有问题,大于0小于1不应该弹出提示框吧?
    另:还可以用正则简便的解决
    先贴个用原文改的<SCRIPT LANGUAGE="JavaScript">
    <!--
    function xiaoshu(aa){ 
    if(isNaN(aa.value) || aa.value >1 || aa.value<=0 || aa.value.length!=5  ){ //如果为NaN 或 大于1 或 小于等于0 或 长度不是5位
    alert("请填入数字并且精确到小数点后三位"); 
    document.getElementById("xiaoshutt").value="";
    document.getElementById("xiaoshutt").focus();
    }
    else alert(aa.value);
    }
    //-->
    </SCRIPT>  <input id="xiaoshutt" onblur="" name="item_weight" type="text" class="textbox_short" maxlength="10"/> <INPUT TYPE="button" VALUE="保存" ONCLICK="xiaoshu(item_weight)">
      

  2.   

    <script> 
    function xiaoshu(aa){ 
    if(!isNaN(aa.value) && aa.value <1 && aa.value.length>4  && aa.value>0){ 
    document.getElementById("item_weight").value="";
    document.getElementById("item_weight").focus() 
    }else{
    alert("请填入数字并且精确到小数点后三位") 
    }
    }
    </script> 
      

  3.   

    正则的方式<SCRIPT LANGUAGE="JavaScript">
    <!--
    function xiaoshu(aa){ 
    var reg = /^0\.\d{3}$/; //以0.开头,之后跟三位数字结束
    if( !reg.test(aa.value) ){ 
    alert("请填入数字并且精确到小数点后三位"); 
    document.getElementById("xiaoshutt").value="";
    document.getElementById("xiaoshutt").focus();
    }
    else alert(aa.value);
    }
    //-->
    </SCRIPT>  <input id="xiaoshutt" onblur="" name="item_weight" type="text" class="textbox_short" maxlength="10"/> <INPUT TYPE="button" VALUE="保存" ONCLICK="xiaoshu(xiaoshutt)">
      

  4.   

    问一下,不在一个table里能获取到id吗?我这里保存按钮和text框不在一个table里,说xiaoshutt未定义.....