我有一个复选框和文本框。单击复选框时,我将500分配给文本框,当复选框未选中时,我正在执行500-500并将taskig 0分配给文本框。 当我慢慢选中复选框时,我的逻辑工作正常。 1.第一次选中复选框:文本框值为500.00 2.第二次取消选中复选框:文本框值为0.00 3.复选框的第三次选择:文本框值为500.00
如果我快速选择/取消选中复选框,则无法获得所需的结果。 1.第一次选中复选框:文本框值为500.00 2.第二次取消选中复选框:文本框值为0.00 3.复选框的第三次选择:文本框值为1000.00
<div>
<input type="text" id="txtAmount" name="txtAmount" /> <br />
<script type="text/javascript">
function selectRec(chkRecord) {
//debugger;
$(chkRecord).prop('disabled', true);
var dActualOrgAmount = $("#txtAmount").val();
if (dActualOrgAmount == "" || dActualOrgAmount == '0.00')
dActualOrgAmount = 0;
if ($(chkRecord).prop('checked')) {
dActualOrgAmount = eval(dActualOrgAmount) + eval(500);
$("#txtAmount").val(eval(dActualOrgAmount).toFixed(2));
}
else {
dActualOrgAmount = eval(dActualOrgAmount) - eval(500);
$("#txtAmount").val(eval(dActualOrgAmount).toFixed(2));
}
$(chkRecord).prop('disabled', false);
}
</script>
答案 0 :(得分:0)
你可以尝试这个。
function selectRec(chkRecord) {
//debugger;
$(chkRecord).prop('disabled', true);
var dActualOrgAmount = $("#txtAmount").val();
var dGetAmount = 0;
if (dActualOrgAmount == "" || dActualOrgAmount == '0.00')
dActualOrgAmount = 0;
if ($(chkRecord).prop('checked')) {
dGetAmount = eval(dActualOrgAmount) + eval(500);
$("#txtAmount").val(eval(dGetAmount).toFixed(2));
}
else {
dGetAmount = eval(dActualOrgAmount) - eval(500);
$("#txtAmount").val(eval(dGetAmount).toFixed(2));
}
$(chkRecord).prop('disabled', false);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="text" id="txtAmount" name="txtAmount" /> <br />
<input type="checkbox" id="chkcheck" value="Click" onclick="selectRec(this)" name="Click" /> <br />
</div>
&#13;