Jquery数学操作不起作用
Jquery Math operation not working
我正在尝试验证两个文本框的数据。我有这个提交金额的文本框。
<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>
以及来自用户控件的另一个文本框。
<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
>LoanCollectionBalanceTextBox
。假设LoanCollectionBalanceTextBox
是12500,如果我输入更多,那么它就会抛出警报。如果我输入100,它不会,因为12500>100,但如果我输入200300,1000之间的任何值,它都会抛出错误。我到处找都找不到。
您应该将文本框值从字符串转换为浮点值。请将validateMount函数替换为以下函数。您的代码不起作用,因为其中的字符串正在进行比较,而不是转换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);
}
}
您正在进行的比较是两个字符串之间的比较,而不是整数。您必须先将值强制转换为integer,然后再进行检查。
做这个
if (parseInt(sbmtAmount) > parseInt(loancollecBlnce))
如果您希望使用小数,请使用parseFloat
。
相关文章:
- ZF:js 被识别,但在操作视图中不起作用
- 单击时的javascript操作不起作用
- 如何调试不起作用的AJAX操作
- 是jQuery 1.3.2导致此操作不起作用,还是其他原因
- Javascript数学不起作用,更好的方式来执行操作
- 自定义主干.模型操作不起作用
- 全日历日单击不起作用(不执行任何操作)
- Ember.js身份验证操作不起作用
- 三元操作 JS 不起作用
- HTML 按钮操作在 Safari 中不起作用
- javascript 函数中的表单操作不起作用
- Javascript对象数组到MVC操作几乎不起作用,但不是完全
- jQuery setTimeout:行上的第一个操作不起作用
- JQuery TableSorter 单击操作不起作用
- 当表单操作使用Apache Shiro转到jsp页面时,onClick不起作用
- 具有默认“监视”操作的FB打开图形脚本不起作用
- JQuery 在创建 DOM 元素后执行某些操作 - DOMNodeInsert 不起作用
- AJAX 调用不起作用,查找错误的操作
- CSS 样式操作:Javascript 不起作用
- 数据库操作后,Ajax 功能不起作用