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;
}
我想要的是检查仅包含数值的文本框。上面的函数是NaN或/^\ d + $ /。test()不起作用,因为无论我输入什么,例如“1”或“10”,它总是返回false。 即使很奇怪,isNaN也曾经工作过一段时间。然后,不管我以前做了什么,我都没有办法解决这个问题。我的javascript验证号码功能无法正常工作
调用验证函数的按钮位于GridView中。
<EditItemTemplate>
<asp:LinkButton ID="btnUpdTrk" runat="server" Text="Update" CommandName="Update"
OnClientClick="javascript:return ValidateShippedQuantity();" CausesValidation="false" />
</EditItemTemplate>
txtShippedQuantity的文本框,
<asp:TemplateField HeaderText="Shipped 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>
对于那些谁有同样的问题,答案或解决方案如下。 这是令人失望的程序后自己解决问题的真正的快乐。 @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后。
相信该行应be var c = shippedQty.charAt(i); if(isNaN(c)) – 2013-02-21 19:59:20
@BradM这是一个错字。 changed.thanks。 – Tiger 2013-02-21 20:06:09
不需要测试每个字符,只需要'return/^ \ d + $ /。test(jQuery(“#txtShippedQuantity”).val())' – 2013-02-21 20:26:42