<script type="text/javascript">
$(document).ready(function myfunction() {
$("#TxBx_MarksObtained").change(function () {
//var value = $(this).val();
var a = $("#TextBoxTotalMarks").val();
var b = $("#TxBx_MarksObtained").val();
var c = (b * 100 / a).toFixed(2);
$("#TextBoxMarksInPercent").val(c);
});
});
</script>
现在,问题是,当我专注于TextBoxTotalMarks
并输入值时,以及TxBx_MarksObtained
,Everythings效果很好,结果将分配给TextBoxMarksInPercent
。
但是,当我将焦点更改为另一个文本框(表单中的其他位置),然后返回并更改TextBoxTotalMarks
和TxBx_MarksObtained
的值。我在TextBoxMarksInPercent
看不到任何变化。
我错了什么?
从另一个文本框返回后为什么我的值没有更新?
答案 0 :(得分:1)
试试这个:
<script type="text/javascript">
$(document).ready(function () {
$("#TxBx_MarksObtained, #TextBoxTotalMarks").change(function () {//for both text boxes
//var value = $(this).val();
var a = $("#TextBoxTotalMarks").val();
var b = $("#TxBx_MarksObtained").val();
var c = (b * 100 / a).toFixed(2);
$("#TextBoxMarksInPercent").val(c);
});
});
</script>
答案 1 :(得分:1)
doc ready
处理程序中有错误:
<script type="text/javascript">
$(document).ready(function myfunction() {
//-------------------------^^^^^^^^^^^-----this should not be here
尝试这种方式我建议你使用.blur() or .focus() or .key()events
:
<script type="text/javascript">
$(document).ready(function () {
$("#TxBx_MarksObtained, #TxBx_MarksObtained").keyup(function () {
// ------------------------------------------^^^^^^--keyup instead of change.
var a = $("#TextBoxTotalMarks").val();
var b = $("#TxBx_MarksObtained").val();
var c = (b * 100 / a).toFixed(2);
$("#TextBoxMarksInPercent").val(c);
});
});
</script>
答案 2 :(得分:0)
尝试focusout()而不是change()
<script type="text/javascript">
$( document ).ready( function ()
{
$("#TxBx_MarksObtained, #TextBoxTotalMarks").focusout(function () {//for both text boxes
//var value = $(this).val();
var a = $("#TextBoxTotalMarks").val();
var b = $("#TxBx_MarksObtained").val();
var c = (b * 100 / a).toFixed(2);
$("#TextBoxMarksInPercent").val(c);
});
});
</script>