使用jQuery将结果值分配给第三个TextBox

时间:2013-03-07 06:11:00

标签: javascript jquery

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

3 个答案:

答案 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>