简体   繁体   English

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

[英]Assign Resulted Value to Third TextBox Using jQuery

i have three textboxes. 我有三个文本框。 I want to get the value from the first 2 textboxes, calculate the value and then assign the result to the 3rd textbox. 我想从前2个文本框中获取值,计算值,然后将结果分配给第3个文本框。 To achieve this, i have done something like following in jquery; 为了达到这个目的,我在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>

Now, the problem is, when i focus on TextBoxTotalMarks and enter the value, and for TxBx_MarksObtained too, Everythings works great and the result is assign to TextBoxMarksInPercent . 现在,问题是,当我专注于TextBoxTotalMarks并输入值时,对于TxBx_MarksObtained ,Everythings工作得很好,结果分配给TextBoxMarksInPercent
However, when i change my focus to another textbox (somewhere else in form) and then come back and change the value of TextBoxTotalMarks and TxBx_MarksObtained . 但是,当我将焦点更改为另一个文本框(表单中的其他位置),然后返回并更改TextBoxTotalMarksTxBx_MarksObtained的值。 I dont see any changes in TextBoxMarksInPercent . 我没有看到TextBoxMarksInPercent任何变化。
What i am getting wrong? 我错了什么?
Why my value isn't updated after comming back from another textbox? 从另一个文本框返回后为什么我的值没有更新?

Try this: 尝试这个:

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

You have a error in doc ready handler: 您在doc ready处理程序中有错误:

<script type="text/javascript">
   $(document).ready(function myfunction() {
   //-------------------------^^^^^^^^^^^-----this should not be here

try this way i would suggest you to use .blur() or .focus() or .key()events : 试试这种方式我建议你使用.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> 

Try focusout() instead of change() 尝试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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM