Javascript 用计算结果填充文本框
我有一个表单,用户输入价格和数量,在鼠标离开“数量”文本框后,我希望TotalPrice文本框填充价格*数量的结果。下面是我的jQuery代码,但是TotalPrice文本框没有填充结果。希望有人能建议我如何去做它的权利Javascript 用计算结果填充文本框,javascript,jquery,Javascript,Jquery,我有一个表单,用户输入价格和数量,在鼠标离开“数量”文本框后,我希望TotalPrice文本框填充价格*数量的结果。下面是我的jQuery代码,但是TotalPrice文本框没有填充结果。希望有人能建议我如何去做它的权利 $("#quantity").mouseleave (function () { var i = $("#price").val(); var k = $("#quantity").val(); var total = i*k; $("#tota
$("#quantity").mouseleave (function () {
var i = $("#price").val();
var k = $("#quantity").val();
var total = i*k;
$("#totalprice").val(total);
});
代码的问题在于,只要调用
ready
函数,它只执行一次。
您需要将listner附加到action元素
$(document).ready(function() {
$("#quantity").mouseleave(function(){
var i = $("#price").val();
var k = $("#quantity").val();
var total = i*k;
$("#totalprice").val(total);
});
});
您可以使用各种事件列表器,如onchange、onfocusout、blur、onkeyup,具体取决于您希望更改发生的方式和时间。有关事件类型和仅用于jquery的所有事件的更多信息-您需要使用这两个文本框的
blur
事件处理程序。试试这个:
$(document).ready(function() {
$("#price").on("blur", calculate);
$("#quantity").on("blur", calculate);
//If you want to do the calculation when the page renders:
calculate();
});
function calculate(){
var i = $("#price").val();
var k = $("#quantity").val();
var total = i*k;
$("#totalprice").val(total);
}
正如trincot在下面的评论中提到的,您可以将两个事件合并到一行中,因为它们调用相同的函数:
$("#price, #quantity").on("blur", calculate);
我想你想要这个
jQuery(document).ready(function($) {
var price = $("#price");
var qty = $("#quantity");
var total = $("#totalprice");
/* CREATE VARIABLES ON DOCUMENT READY,
BECAUSE YOU WANT TO CACHE THE DOM SELECTION */
qty.on("blur", function(){
var i = price.val();
var k = qty.val();
total.val(i * k);
});
});
工作小提琴==>在OP中显示所有相关代码。。js和htmlYou需要在这两个文本框的
blur
事件处理程序中包装相同的代码。要绑定事件,请使用$('selector1,selector2').blur(function(){//Same code here})代码>。我认为你应该为此创建一个小提琴。只需考虑一点,不要太抓紧鼠标离开,因为用户可以使用制表符退出该字段或在触摸设备/屏幕上。因此,检查视场何时失去焦点。我没有鼠标。我使用TAB键四处移动。您可以使用各种事件。例如:-onchange、onfocusout、blur。只要找出适合你需要的活动。您甚至可以使用onkeyup()事件来执行实时执行。如果您使用focusoutDownvoter更改mouseleave,这应该会起作用。请告诉我原因,以便我可以为相同的原因改进代码。从您的答案的注释中可以明显看出downvotes的原因。注意:我不是向下投票人。检查两个字段是否都有值不是更好吗?否则的话,结果会很糟糕inaccurate@Tushar只有当页面呈现时这两个字段具有值时,才需要这样做。我将添加一条注释。@DarrenSweeney当然可以,但验证不是问题的一部分。或者:$(“价格,数量”)。关于(“模糊”,计算)代码>@trincot我总是希望它们分开,但我会把它添加到答案中。托尼。我只是想知道,为什么要在开始时加载整个dom,而不是只加载函数中的值?它写在命令中,为什么要在注释中大喊大叫?我不是大喊大叫,只是为了高亮显示,因为每次模糊时,他都需要从输入中读取值,这样更好。在init上稍微慢一点,但对于下一次计算来说,这是一种更快的方式。