我正在基于输入自动计算用户利润的表单上工作。这是我的HTML表单:为什么jQuery val()返回空/对象
$(document).ready(function() {
$('#inv_amount').keyup(function() {
var invAmount = $(this).val();
var profit = $('#profitPercent').val();
var profCalc = +invAmount + ((profit/100) * invAmount);
$('#exp_earning').val(profCalc);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<div class="form-group">
<label for="inv_amount" class="control-label">Amount to Invest:</label>
<input type="text" name="inv_amount" id="inv_amount" class="form-control" placeholder="Enter an amount" required="true">
</div>
<div class="form-group">
<label for="exp_earning" class="control-label">Expected Earning:</label>
<input type="text" name="exp_earning" id="exp_earning" class="form-control" placeholder="Your expected earning" disabled="true">
<input type="hidden" name="profitPercent" id="profitPercent" value="12">
</div>
</form>
编辑
利润计算正确,并显示在形式,但是当我检查的形式,对exp_earning
返回空。我也检查过使用console.log(),我发现它是返回一个对象,而不是值。
其他编辑:我真的很想知道两件事情。
为什么
#exp_earning
返回空值,当我尝试提交表单,即使它是在浏览器中可见。为什么当我尝试在我的浏览器控制台中使用
var outPut = $('#exp_earning').val(profCalc); console.log(outPut);
查看该值时,该值显示为对象?
是的,我试图验证使用php'空()'。 –
我输入'1000'并获得'1120'。为了那些不是经纪人的使用者的利益,能否请你解释为什么1120不是预期的输出,预期的结果以及它与jQuery.val()的关系? –
在Chrome上它可以工作:[示例](https://jsfiddle.net/ubkvvwh5/) – Uncoke