Jquery .change()只更新结果一次
Jquery .change() only updates results one time
我有3个输入字段。#first, #second, #third,以及第四个字段#theResult.
<div id="addFields">
<span id="addFieldsHeader">Add The Fields</span>
<table style="margin:0 auto;">
<tr>
<td style="width:80px;">First
<input id="first" size="5" value="3" name="first" style="width:75px" />
</td>
<td style="width:80px;">Second
<input id="second" size="5" value="5" name="second" style="width:75px" />
</td>
<td style="width:80px;">Third
<input id="third" size="6" maxlength="7" name="third" style="width:75px" value="0" />
</td>
<td style="width:80px;">Result
<input id="theResult" size="7" maxlength="7" name="result" style="width:75px" value="0" />
</td>
</tr>
</table>
</div>
我尝试编写一个jQuery脚本,将添加#first, #second和#third的值在一起,并在#theResult中显示结果。
我确实在这里找到了。change()函数的文档,看起来它比。blur()或。keyup()更适合我的需求,因为我希望#theResult的值在每次#first, #second或#third的值被用户更改时更新。
我有以下jQuery:
$(document).ready(function () {
var first = parseInt($("#first").val(), 10);
var second = parseInt($("#second").val(), 10);
var third = parseInt($("#third").val(), 10);
var theResult = first + second + third;
$("#addFields input").change(function () {
$("#theResult").val(theResult);
});
});
当我改变任何输入中的值时,#theResult确实更新,但它只工作一次,之后我必须重新加载页面才能使其工作。此外,只添加初始值,而不添加更新后的值。小提琴在这里
任何有经验的人我都非常感谢你的帮助:)
$(document).ready(function() {
$("#addFields input").change(function() {
var first = parseInt($("#first").val(),10);
var second = parseInt($("#second").val(),10);
var third = parseInt($("#third").val(),10);
var theResult = first + second + third;
$("#theResult").val(theResult);
});
});
你只需要移动change()
函数中的变量,这样它每次都会更新。
JSFiddle
您只需要在更改函数中引入变量
$("#addFields input" ).change(function() {
var first = parseInt($("#first").val(),10);
var second = parseInt($("#second").val(),10);
var third = parseInt($("#third").val(),10);
var theResult = first + second + third;
$("#theResult").val(theResult);
});
试试这样:
$(function() {
$("#addFields input" ).change(function() {
var first = parseInt($("#first").val(),10);
var second = parseInt($("#second").val(),10);
var third = parseInt($("#third").val(),10);
var theResult = first + second + third;
$("#theResult").val(theResult);
});
});
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- html 如何从一次计算中获得多个即时结果
- 只显示“;没有结果”;在AngularJS中使用嵌套ng repeat时一次
- 链接基于Ajax请求的jQuery.each结果只触发beforeEnd一次
- 如何一次用两个结果进行两个验证
- 在下一次循环迭代之前等待promise结果
- 如何一次显示所有回调结果(格式化)
- 一键返回两次结果
- 如何使PHP shuffle结果在整个shuffle过程中一次显示一个
- 每5秒读取一次MYSQL表,并在PHP页面上动态显示结果,而无需刷新
- Jquery .change()只更新结果一次