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 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 が少し助けてくれます。そして、1 行を彼のコードに変更します。
$(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 コードの 2 行目は、少なくとも必要な内容を編集した後、aspx ページの問題の原因です。getTlementById の部分だと思います。Google Chrome 開発者ツールから txtbox txtShippedQuantity の正しい ID を見つけた後。