0

動的 HTML フォームを作成しましたが、その 2 つのフィールドは日付型です。これらの 2 つのフィールドは、データを 2 つの配列に投稿しています。2 つの問題があります。

a) ボタンを押しても配列データが印刷されません。

b) データを格納する配列を作成したため、動的フォームが完全に機能していないようです。フォームの最初の「エントリを保存」ボタンを押したときにのみ、新しいフィールドが生成されます。また、フィールドは削除されません。

私のコードは次のとおりです。

$(document).ready(function () {
    $('#btnAdd').click(function () {
        var $address = $('#address');
        var num = $('.clonedAddress').length;
        var newNum = new Number(num + 1);
        var newElem = $address.clone().attr('id', 'address' + newNum).addClass('clonedAddress');

        newElem.children('div').each(function (i) {
            this.id = 'input' + (newNum * 10 + i);
        });
        newElem.find('input').each(function () {
            this.id = this.id + newNum;
            this.name = this.name + newNum;
        });

        if (num > 0) {
            $('.clonedAddress:last').after(newElem);
        } else {
            $address.after(newElem);
        }

        $('#btnDel').removeAttr('disabled');

    });

    $('#btnDel').click(function () {
        $('.clonedAddress:last').remove();
        $('#btnAdd').removeAttr('disabled');
        if ($('.clonedAddress').length == 0) {
            $('#btnDel').attr('disabled', 'disabled');
        }
    });
    $('#btnDel').attr('disabled', 'disabled');
});
$(function () {
    $("#datepicker1").datepicker({
        dateFormat: "yy-mm-dd"
    }).datepicker("setDate", "0");
});

var startDateArray = new Array();
var endDateArray = new Array();

function intertDates() {
    var inputs = document.getElementsById('datepicker1').value;
    var inputsend = document.getElementsById('datepicker2').value;
    startDateArray[startDateArray.length] = inputs;
    endDateArray[endDateArray.length] = inputsend;
    window.alert("Entries added!");
}

function show() {
    var content = "<b>Elements of the arrays:</b><br>";
    for (var i = 0; i < startDateArray.length; i++) {
        content += startDateArray[i] + "<br>";
    }
    for (var i = 0; i < endDateArray.length; i++) {
        content += endDateArray[i] + "<br>";
    }
}

JSFIDDLE

何か案は?ありがとう。

4

3 に答える 3

0

を使用してjQueryいるので、 を使い続けることを強くお勧めしますjQuery selector

var inputs = $('#datepicker1').val();
var inputsend = $('#datepicker2').val();

どこでセレクター#に使用されます。ID

于 2013-08-27T09:29:38.753 に答える
0

これを試してください:答えではないことはわかっていますが、idを使用して要素の値を取得するのは間違っています

交換

var inputs = document.getElementsById('datepicker1').value;
var inputsend = document.getElementsById('datepicker2').value;

var inputs = document.getElementById('datepicker1').value;
var inputsend = document.getElementById('datepicker2').value;
于 2013-08-27T09:21:58.407 に答える
0

ボタンで要素 ID を数回使用していますが、これは間違っています。ID は要素ごとに一意である必要があります。次に例を示します。

    <button id="btnAdd" onclick="insertDates()">Save entry</button>
    </div>
</div>
<button id="btnAdd">Add Address</button>
<button id="btnDel">Delete Address</button>

jQuery は$('#btnAdd')、最初に見つかった #btnAdd にのみイベントを添付します。クラスを使用して同様のイベントを複数の要素にアタッチする必要があります。さらに、すべての.clickハンドラーを単純に変更する必要があります。.on('click',これは、on()ディレクティブが関数を現在および将来の要素に追加するため.click()です。これは、ページが読み込まれるときに既存の要素に対してのみ行われます。

例えば:

<button id="btnDel">Delete Address</button>

$('#btnDel').click(function () {
    [...]
});

なる:

<button class="btnDel">Delete Address</button>

$('.btnDel').on('click', function () {
    [...]
});
于 2013-08-27T09:31:54.157 に答える