gpt4 book ai didi

IE7 中的 javascript,数字(整数)验证不起作用

转载 作者:行者123 更新时间:2023-12-02 19:54:21 26 4
gpt4 key购买 nike

function isInteger(char) {
return (char.toString().search(/^-?[0-9]+$/) == 0 )
}
function validateQuan() {
var minExist = "false";
for (i=0; i<3; i++) {
var j = document.getElementById("ProductQuantity_"+i).value;
if (isInteger(j) && j > 0) {minExist = "true";alert("oi");}
}
if (minExist == "true") {$("#pvs_form").submit();} else {alert("Please enter at least one valid quantity");}
}

上面是我的代码,它适用于 FF 3.6 和 IE8,但不适用于 IE7。在 IE7 中,“if (isInteger(j) && j > 0)”无法得出“true”。即使我删除“j > 0”并在正则表达式上使用“[1-9]”。

还有更好的解决方案吗?

编辑:抱歉,正则表达式是错误的,任何数字 > 9 也是“true”。

编辑:非常抱歉,我刚刚发现主要问题实际上是因为我在同一页面上得到了具有相同 id“ProductQuantity_”+i 的其他表单,并且可能会使 IE7 只查看页面上找到的具有该 id 的第一个元素。也许我原来的代码实际上可以工作,但谢谢提醒我正则表达式不符合预期并获得更好的代码。再次感谢并抱歉。

最佳答案

   var isInteger = function( str ) { 
return (str|0) == str;
};

按位或 0 确保将字符串或 float 字替换为整数

isInteger("3.4") // false
isInteger("abc") // false => "abc"|0 = 0
isInteger("3") // true

现在:

function validateQuan() {
var minExist = false ;
for (var i = 0; i < 3; i++ ){
var j = document.getElementById("ProductQuantity_"+i).value;
if ( isInteger( j ) && j > 0 ) {
minExist = true;
alert("oi");
break; // goal achieved, break loop
}
}
if ( minExist ) {
$("#pvs_form").submit();
} else {
alert("Please enter at least one valid quantity");
}
}

关于IE7 中的 javascript,数字(整数)验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com