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() не работает, поскольку она всегда возвращает false, что бы я ни вводил, например «1» или «10». Даже странно, 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 дает мне небольшую помощь. И я меняю одну строчку на свои коды.
$(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. После нахождения правильного идентификатора для txtbox txtShippedQuantity из инструмента разработчика Google Chrome.
Я считаю, что линия должна be var c = shippedQty.charAt (i); if (isNaN (c)) –
@BradM это опечатка. changed.thanks. – Tiger
Не нужно проверять каждый символ, просто нужно 'return/^ \ d + $ /. Test (jQuery (" # txtShippedQuantity "). Val())' –