0

生成された入力フィールドの値を連結して、メールで送信できるようにしようとしています。

jsfiddle: http://jsfiddle.net/dawidvdh/NZy53/

ここにコード:

JavaScript:

$(document).ready(function() {
    var pass = 1;
    val = 0;
    jQuery('div.passport').each(function() {
        var index = "pass"+pass++;
        var passer = "<input class='pass' id="+'"'+index+'"'+" "+"/>";
        var passvalue = $(this).attr('value');
        jQuery(passer).appendTo('#pass');

        jQuery('#dup').click(function(){
        calc(passvalue);
        });
    });

    function calc(passvalue) {
        console.log(passvalue);
    };
});

次に、HTML:

<div id="pass"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<div class="passport"></div>
<button id="dup">duplicate</button>

どんな助けでも大歓迎です...

4

1 に答える 1

0

コードを次のように変更しました

$(document).ready(function() {
    var pass = 1;
    val = 0;
    jQuery('div.passport').each(function() {
       var index = "pass"+pass++;
       var passer = "<input class='pass' id="+'"'+index+'"'+" "+"/>";
       var passvalue = $(this).attr('value');
       jQuery(passer).appendTo('#pass');
    });
    $(document).on('click', '#dup', calc);

    function calc() {
      var passValue = 0;
      $('.pass').each(function(){ var v=parseFloat($(this).val()); if(v) passValue+=v});
      console.log(passValue);
    };
});​

動作します(コンソールを開いてすべてのフィールドの合計を確認してください)

主な変更点:

  • を使用onすると、ボタンをクリックしたときにcalc関数が1回だけ呼び出されるようにすることができます
  • フィールドの値を解析し、値が追加された場合は追加しませんNaN
于 2012-12-10T14:48:57.780 に答える