我正在尝试验证两个文本框的数据。我有这个提交金额的文本框。
<div class="col-md-3">
<label for="SubmittedAmountTextBox">Total Submitted Amount</label>
<Everest:AmountTextBox runat="server" ID="SubmittedAmountTextBox" TriggerDenomination="True" autocomplete="off" CssClass="loan-amount-input submitted-amount"></Everest:AmountTextBox>
<asp:RequiredFieldValidator runat="server" ID="SubmittedAmountTextBoxRequiredFieldValidator" Display="Dynamic"
ErrorMessage="Required" ControlToValidate="SubmittedAmountTextBox" CssClass="alert alert-error" Style="padding: 5px;" SetFocusOnError="true" />
</div>
来自usercontrol的另一个文本框。
<div class="col-sm-2">
<asp:TextBox runat="server" ID="LoanCollectionBalanceTextBox" CssClass="form-control input-sm" data-bind-property="CollectionBalance" />
</div>
ajax调用获取文本框的所有数据。如果SubmittedAmountTextBox
输入大于LoanCollectionBalanceTextBox
,我只是尝试通过启动箱提醒。
我的Jquery验证函数:
function validateAmount() {
var sbmtAmount = $('#SubmittedAmountTextBox').val();
console.log(sbmtAmount);
var loancollecBlnce = $('#LoanCollectionBalanceTextBox').val();
if (sbmtAmount > loancollecBlnce) {
alert(sbmtAmount);
alert(loancollecBlnce);
debugger;
//bootbox.alert("Submitted amount is higher then Collection Balance")
$("#SaveButton").attr('disabled', 'disabled');
} else {
$("#SaveButton").attr('disabled', false);
}
}
SubmittedAmountTextBox
$('#SubmittedAmountTextBox').on('blur', function (evt) {
var checkedValue = $('input[id*=loanTypeCheck]:checked').val();
if (checkedValue === "Cash") {
$(this).trigger('showDeno', [$(this)]);
} else if (checkedValue === "Dharauti") {
validateAmount();
}
});
奇怪的是它确实验证了SubmittedAmountTextBox
&gt; LoanCollectionBalanceTextBox
。假设LoanCollectionBalanceTextBox
是12500,如果我输入更多,那么它会抛出警报。如果我输入100则不会因为12500&gt; 100但如果我输入200,300之间的任何东西,它会抛出错误。我搜索过的地方无法解决这个问题。
答案 0 :(得分:2)
您必须从字符串转换浮点值中的文本框值。请用下面的替换你的validateAmount函数。您的代码无法正常工作,因为在字符串中进行比较而不是在float中转换文本框值。
function validateAmount() {
var sbmtAmount = parseFloat($('#SubmittedAmountTextBox').val();
console.log(sbmtAmount));
var loancollecBlnce = parseFloat($('#LoanCollectionBalanceTextBox').val());
if (sbmtAmount > loancollecBlnce) {
alert(sbmtAmount);
alert(loancollecBlnce);
debugger;
//bootbox.alert("Submitted amount is higher then Collection Balance")
$("#SaveButton").attr('disabled', 'disabled');
} else {
$("#SaveButton").attr('disabled', false);
}
}
答案 1 :(得分:1)
您正在进行的比较是在两个字符串之间而不是整数。您必须先将值转换为整数,然后进行检查。
这样做
if (parseInt(sbmtAmount) > parseInt(loancollecBlnce))
代码或parseFloat
,如果您需要小数。