如何计算我的所有输入

时间:2014-05-16 19:46:54

标签: javascript html dynamic input static

您好我有两种输入动态和静态。我想计算它们并在其他输入中显示总数。

这是我的静态输入

<input step="any" type="number" readOnly id="totallundi" class="totallundi"
       name="totallundi" size="10" min="0" max="24" value="0" onblur="autre();" 
       onfocus="enter();"/>

这里是我添加动态输入的按钮

<p id="add_lundi" class="plus">
    <a href="#"><span> + </span></a>
</p>
<p id="remove_lundi" class="minus">
    <a href="#"><span> - </span></a>
</p>

这是我在javascript中创建新行动态的函数

var counter = 0;
var $newRow; 

$(function(){
    $('#add_field').click(function(){
        counter += 1;

        $('#calculTempsdiv').append(
            $('<input id="temps' + counter + '" name="temps[]" type="number" size="10" min="0" max="24" value="0" step="any" onchange="checkField();" class="dynamic" onblur="autre();" onfocus="enter();"/>')  
        )
    });
});

如何计算它们并将其显示在此处:

<input step="any" type="number" id="totaldimanche" class="totaldimanche" 
       readOnly name="totaldimanche" size="10" min="0" max="24" value="0" 
       onblur="autre();" onfocus="enter();"/>

修改

这里我是如何计算我的静态的,它的doest采取我的静态(我没有显示我的所有输入,所以totaldimanche存在totallundi存在但我没有告诉你我的输入在代码中导致它都一样。

$('document').ready(function() {



    $(
        '#totaldimanche,#totallundi, #totalmardi, #totalmercredi , #totaljeudi, #totalvendredi ,#totalsamedi, #input1,#input2,#temps3,#input4,#input5,#input6,#tempsam  '
    ).each(function()   {$(this).on('change',recalculate);}
       );

});

function recalculate()
{

    if(isNaN(this.value))
       alert("Please enter a number");

    else
    {

   var b = 0; 

     if ( 
     ( $('#totaldimanche').val() !== b)  
     &&   ( $('#totallundi').val() !== b   )
     &&    ($('#totalmardi').val() !== b   )
     &&    ($('#totalmercredi').val() !== b   )
     &&    ($('#totaljeudi').val() !== b   )
     &&   ( $('#totalvendredi').val() !== b   )   
     &&   ( $('#totalsamedi').val() !== b ))
     {

        var a = 40;

        var value1 = $('#totaldimanche').val() == "" ? 0 :  parseFloat($('#totaldimanche').val());
        var value2 = $('#totallundi').val() == "" ? 0 :  parseFloat($('#totallundi').val());
        var value3 = $('#totalmardi').val() == "" ? 0 :  parseFloat($('#totalmardi').val());
        var value4 = $('#totalmercredi').val() == "" ? 0 :  parseFloat($('#totalmercredi').val());
        var value5 = $('#totaljeudi').val() == "" ? 0 :  parseFloat($('#totaljeudi').val());
        var value6 = $('#totalvendredi').val() == "" ? 0 :  parseFloat($('#totalvendredi').val());
        var value7 = $('#totalsamedi').val() == "" ? 0 :  parseFloat($('#totalsamedi').val());
        var total =  value1 + value2 + value3  + value4 + value5 + value6 + value7 ;

        $('#result').val(total);

1 个答案:

答案 0 :(得分:0)

我认为您可以使用length property并在输入中显示值。

添加新的动态输入后,您可以在函数中添加它。

编辑:

您正在追加一个id等于temps + increment的新输入,并且它有一个名称为动态的类。如果您想知道动态输入的数量,那么您只需要调用一个重要的函数。您可以创建一个新函数countDynamicInputs(),并在添加新输入后在单击函数上调用它。

function countDynamicInput() {

    $(".dynamic").length;

}

看到你的代码我没有看到任何其他方法来计算动态输入,就像你对静态输入一样,因为你只设置了一个id为temps + increment和一个动态的类。如果您想像对静态输入一样计算输入数,那么您应该在动态输入中设置天数。

EDIT2:

你说“我想计算它们并在其他输入中显示总数。”我理解它,因为你想知道动态输入的数量。如果您想获得该值,则需要在动态输入上使用each iterator并获取其值并求它们。

您可以将每个应用到动态类中以获取所有输入,并为每次迭代获取值。