0

私は3つのテキストボックスを持っています。最初の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、すべてがうまく機能し、結果がに割り当てられることTextBoxMarksInPercentです。
ただし、フォーカスを別のテキストボックス(フォーム内の別の場所)に変更してから、戻ってとの値を変更する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

change()の代わりにfocusout()を試してください

<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 に答える