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