[英]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
. 但是,当我将焦点更改为另一个文本框(表单中的其他位置),然后返回并更改
TextBoxTotalMarks
和TxBx_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.