gpt4 book ai didi

javascript - 我的数字函数的 javascript 验证无法正常工作

转载 作者:行者123 更新时间:2023-11-30 13:07:50 26 4
gpt4 key购买 nike

function ValidateShippedQuantity() {
var shippedQty = jQuery("#txtShippedQuantity").val();
shippedQty = shippedQty.toString();
for (i = 0; i < shippedQty.length; i++) {
var c = shippedQty.charAt(i);
if (isNaN(c)) //(!(/^\d+$/.test(shippedQty)))
{
alert("Only Numeric Values Allowed");
//x.focus();
return false;
}
}
return true;
}

我想要的是检查仅包含数值的文本框。上面的函数 isNaN 或/^\d+$/.test() 不起作用,因为无论我输入什么,例如“1”或“10”,它总是返回 false。更奇怪的是,isNaN 曾经工作了一段时间。然后无论我取消我所做的,它后来都不起作用。

调用验证函数的按钮在 Gridview 中。

<EditItemTemplate>
<asp:LinkButton ID="btnUpdTrk" runat="server" Text="Update" CommandName="Update"
OnClientClick="javascript:return ValidateShippedQuantity();" CausesValidation="false" />
</EditItemTemplate>

txtShippedQuantity 的文本框,

<asp:TemplateField HeaderText="Shipped&nbsp;Qty">
<ItemTemplate>
<asp:Label ID="lblShippedQuantity" runat="server" Text='<%#Eval("ShippedQuantity")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtShippedQuantity" Width="50px" Text='<%#Eval("ShippedQuantity")%>' />
</EditItemTemplate>
</asp:TemplateField>

遇到同样问题的 friend ,答案或解决方案如下。这是在令人失望的程序之后自己解决问题的真正幸福。@cymen 给了我一点帮助。我将其中一行更改为他的代码。

        $(document).ready(function () {
$('#btnUpdTrk').on('click', ValidateShippedQuantity);
});
function ValidateShippedQuantity() {
var shippedQty = document.getElementById('ContentPlaceHolder1_gvTrkInfo_txtShippedQuantity_0').value;
var shippedQtyNumber = parseInt(shippedQty, 10);
if (shippedQtyNumber.toString() !== shippedQty) {
alert("Only Numeric Values Allowed for Tracking #.");
return false;
}
return true;
}

@cymen 代码的第二行是我的 aspx 页面出现问题的原因,至少在编辑之后我得到了我想要的。我认为这是 getTlementById 部分。从 google chrome 开发者工具找到 txtbox txtShippedQuantity 的正确 ID 后。

最佳答案

您可以使用 parseInt将输入字符串解析为数字,然后将数字与原始字符串进行比较:

var input = '5';
var number = parseInt(input, 10);
if (number.toString() === input) {
// valid
} else {
// invalid
}

所以我会把你的功能写成:

function ValidateShippedQuantity() {
var shippedQty = jQuery("#txtShippedQuantity").val();
var shippedQtyNumber = parseInt(shippedQty, 10);
if (shippedQtyNumber.toString() !== shippedQty) {
alert("Only Numeric Values Allowed");
return false;
}
return true;
}

这是一个正常运行的演示(在有效时附加警告):http://jsfiddle.net/S4CQT/

请注意,如果他们输入 1,000,这将失败,因为它将检查“1000”是否等于“1,000”。所以如果你想支持逗号,你有几个选择,但一个快速的方法(认为 10,00 是有效的)是将 if 中的语句更改为:

shippedQtyNumber.toString() !== shippedQty.replace(',', '')

另一个潜在的失败是如果您允许非整数(如 10.5)。在这种情况下,请查看 parseFloat .

关于javascript - 我的数字函数的 javascript 验证无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15011038/

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