只有文本框中的数字值和值小于6 - js

时间:2017-10-13 08:50:03

标签: javascript php jquery validation numeric

只有数字的构建逻辑和少于6的值(可以是5.9,4.6 ......但不是6.01)应该从输入中排除,尝试过某些东西并得到解决方案但面临一些问题...

下面的输入在PHP循环中是动态的:

<input type="text" name="prd_<?php echo $prd['id']; ?>" id="prd_<?php echo $prd['id']; ?>" onkeypress="return chkvalue(<?php echo $prd['id']; ?>,<?php echo $prd['wgh']; ?>,<?php echo $prd['price']; ?> ); "/>

<input type="text" name="prdinto_<?php echo $prd['id']; ?>" id="prdinto_<?php echo $prd['id']; ?>" />

结果如下:

<input type="text" name="prd_1" id="prd_1" onkeypress="return chkvalue(1,0.50,1430.00); "/> 
<input type="text" name="prdinto_1" id="prdinto_1" />

<input type="text" name="prd_2" id="prd_2" onkeypress="return chkvalue(2,0.20,1130.00); "/> 
<input type="text" name="prdinto_2" id="prdinto_2" />

<input type="text" name="prd_3" id="prd_3" onkeypress="return chkvalue(3,0.55,1340.00); "/> 
<input type="text" name="prdinto_3" id="prdinto_3" />

以下尝试过:

function chkvalue(id,wgh,price)
{ 
    var number = document.getElementById("prd_"+id).value;
    if (isNaN(number.trim())) {
        alert("Enter only numbers.");
        document.getElementById("prd_"+id).value = "";  
    }

    if ( number.trim() > 6 ) {
        alert("Value entered must be 6 or lower.");
        document.getElementById("prd_"+id).value = "";
    }

    var ca = wgh * price;

     document.getElementById("prdinto_"+id).value = ca ;
     //document.getElementById("prdinto_"+id).value = ca;
}

我面临的问题:

1}当我在prod_1或prod_2的输入中键入任何字母/单词时 - 我会收到“仅输入数字”的警告但在第一个字母之后:如果我键入a,则没有警报但是只要我再输入任何一个信我得到警告......但我不想这样..我想在第一封信它应该身份和警惕

2}第二个警告“输入的值必须是6或更低” - 这里当我输入6.01然后它也取值而没有警报..我想要的值应该低于6 ...但它可以取十进制值,如4.5或4.6

3}当我制作标签时,只有它显示警报,需要警告鼠标移动,键盘等....

4}最后prdinto_1,prdinto_2,prdinto_3他们没有得到价值。

需要something like this - 1,2,3点。

jsffle

有时我在文本框中得到“未定义”

1 个答案:

答案 0 :(得分:1)

首先,您应该使用onkeyup事件而不是onkeypress事件。因此,使用 onkeyup()方法而不是 onkeypress()方法。然后大多数问题都将消失!

    <!DOCTYPE html>
        <table>
        <tr>
          <td>
            <input type="text" placeholder="prd_1" name="prd_1" id="prd_1" onkeyup="chkvalue(1,0.50,1430.00)"/> 
          </td>
          <td>
                <input type="text"  placeholder="prdinto_1" name="prdinto_1" id="prdinto_1" />
          </td>
        </tr>
        <tr>
          <td>
            <input type="text" placeholder="prd_2" name="prd_2" id="prd_2" onkeyup="chkvalue(2,0.20,30.00); "/> 
          </td>
          <td>
             <input type="text" placeholder="prdinto_2" name="prdinto_2" id="prdinto_2" />
          </td>
        </tr>
        <tr>
          <td>
               <input type="text" placeholder="prd_3" name="prd_3" id="prd_3" onkeyup="chkvalue(3,0.55,10.00); "/> 
          </td>
          <td>
                <input type="text" placeholder="prdinto_3" name="prdinto_3" id="prdinto_3" />
          </td>
        </tr>
        </table>
      <script>  
        function chkvalue(id,wgh,price)
    { 
        var number = document.getElementById("prd_"+id).value;
        if (isNaN(parseInt(number.trim()))) {
            alert("Enter only numbers.");
            document.getElementById("prd_"+id).value = "";  
        }

        if ( number.trim() > 6 ) {
            alert("Value entered must be 6 or lower.");
            document.getElementById("prd_"+id).value = "";
        }

        var ca = wgh * price;
        document.getElementById("prdinto_"+id).value = ca;
        //document.getElementById("prdinto_"+id).value = ca;

 if (isNaN(parseInt(number.trim()))) {
            alert("Enter only numbers.");
            document.getElementById("prd_"+id).value = "";  
            document.getElementById("prdinto_"+id).value = "";
        }

    }

    </script>

这段代码完美无缺! :)检查出来