简体   繁体   English

jQuery的每行键控功能的多个输入字段不起作用

[英]JQuery multiple input fields of each row keyup function not working

Hello I am trying to make my jquery code in working order but its not working at all, I don't know whats a problem behind it but it contains multiple text boxes in multiple rows, each row calculates its own sum 您好,我试图按顺序运行我的jquery代码,但它根本不起作用,我不知道它背后的问题是什么,但它在多行中包含多个文本框,每一行都计算自己的总和

Here is Fiddle link 这是小提琴链接

Here is my Code 这是我的代码

$(document).ready(function(){
$('.employee input[type="text"]').keyup(function() {
        var basic_salary = parseInt($('input[name^=txtMonthlyRate]').val());
        var advance_salary = parseInt($('input[name^=txtAdvance]').val());
        var recover_comm = parseInt($('input[name^=txtRecovery]').val());
        var sales_comm = parseInt($('input[name^=txtSales]').val());
        var deduction_salary = parseInt($('input[name^=txtDeduction]').val());
        var adjustment_salary = parseInt($('input[name^=txtAdjustment]').val());
        var total_sum = ((basic_salary+recover_comm+sales_comm) - (deduction_salary + advance_salary)) + adjustment_salary;
        $('input[name^=txtTotal]').val(total_sum);
        console.log(total_sum)
); 
});

The txtSales1, txtDeduction1, txtAdjustment1 variables are camel cased in your javascript, but not on the html input name. txtSales1,txtDeduction1,txtAdjustment1变量以驼峰形式显示在您的JavaScript中,但不在html输入名称上。 So these return NaN. 因此这些返回NaN。

UPDATE Also, you need to set the context of what you're referring to using the second parameter of a selector function: 更新此外,您还需要使用选择器函数的第二个参数来设置所指内容的上下文:

$('.employee input[type="text"]').keyup(function(e) { 
    var $scope = $(this).closest('.employee');
    var basic_salary = parseInt($('input[name^=txtMonthlyRate]', $scope).val());
    var advance_salary = parseInt($('input[name^=txtAdvance]', $scope).val());
    var recover_comm = parseInt($('input[name^=txtRecovery]', $scope).val());
    var sales_comm = parseInt($('input[name^=txtSales]', $scope).val());
    var deduction_salary = parseInt($('input[name^=txtDeduction]', $scope).val());
    var adjustment_salary = parseInt($('input[name^=txtAdjustment]', $scope).val());
    var total_sum = ((basic_salary+recover_comm+sales_comm) - (deduction_salary + advance_salary)) + adjustment_salary;
    $('input[name^=txtTotal]', $scope).val(total_sum); 
});

txttotal1需要更改为txtTotal1小提琴需要结束}

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

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