我希望Amont文本框中的费率和qunatity的结果接近金额按钮,但它在文本框中显示0,当提示值显示未定义时,任何人都可以帮助我,我在javascript的非常初级...任何帮助将不胜感激。
这是我的HTML
<form method="POST">
<pre>
<label>Item id : </label><input type="text" name="" id="txt_Item_id"><br>
<label>Catogeory :</label><input type="text" name="" id="txt_Cato_geory"><br>
<label>Quantity : </label><input type="text" name="" id="txt_Quan_tity"><br>
<label>Rate : </label><input type="text" name="" id="txt_Ra_te"><br>
<input type="text" name="" id="txt_Amo_unt"> <input type="button" value="Amount" id="btn_T_Amount"><br>
<label>Discount : </label><input type="text" name="" id="txt_Disc_ount"><br>
<input type="text" name="" id="txt_Net"><input type="button" name="" id="btn_Net" value="Net"><br>
<input type="button" value="+" id="btn_add"><br>
</pre>
</form>
<table id="MyTable" border="1px solid black">
<thead>
<tr>
<th>Sr#</th>
<th>Catogeory</th>
<th>Quantity</th>
<th>Rate</th>
<th>Amount</th>
<th>%</th>
<th>Discount</th>
<th>Net</th>
<th>Action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Javascript是
$(document).ready(function(){
var calc = new calculate();
calc.rate();
calc.discount();
});
var calculate = function(){
var txt_quantity = $('#txt_Quan_tity').val();
var txt_rate = $('#txt_Ra_te').val();
var txt_Amount = $('#txt_Amo_unt').val();
var txt_discount = $('#txt_Disc_ount').val()/100;
var txt_net = $('#txt_Net').val();
debugger
var total_amount = txt_quantity * txt_rate; // Total
var total_net = txt_discount * txt_Amount;
return{
rate : function(){
$('#txt_Ra_te').on('input',function(){
alert(txt_rate);
// $('#txt_Amo_unt').val(total_amount);
});
}, // End Rate Function
discount : function(){
$('#txt_Disc_ount').on('input',function(){
// $('#txt_Net').val(total_net);
});
}
};
};
答案 0 :(得分:1)
请记住,您将变量calculate
设置为以下内容:
return{
rate : function(){
$('#txt_Ra_te').on('input',function(){
alert(calculate.txt_rate);
// $('#txt_Amo_unt').val(total_amount);
});
}, // End Rate Function
discount : function(){
$('#txt_Disc_ount').on('input',function(){
// $('#txt_Net').val(total_net);
});
}
};
现在看一下你的alert
。您正在尝试访问未在该return语句中定义的内容。 calculate
对函数表达式内部的内容一无所知。它只知道从它返回的内容。
要修复,只需从警报中删除calculate.
,因为您没有从变量calculate
内部访问某些内容,而是定义了一个闭包。
解决方案:alert(txt_rate);