0

我有三个文本框。我想从前 2 个文本框中获取值,计算值,然后将结果分配给第 3 个文本框。为了实现这一点,我在 jquery 中做了类似以下的事情;

<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.
但是,当我将焦点更改为另一个文本框(表单中的其他位置)然后返回并更改 and 的值TextBoxTotalMarksTxBx_MarksObtained。我没有看到任何变化TextBoxMarksInPercent
我做错了什么?
为什么从另一个文本框返回后我的值没有更新?

4

3 回答 3

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>
于 2013-03-07T06:12:22.937 回答
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> 
于 2013-03-07T06:15:50.507 回答
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>
于 2013-03-07T06:16:04.580 回答