只有数字的构建逻辑和少于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点。
有时我在文本框中得到“未定义”
答案 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>
这段代码完美无缺! :)检查出来