数组中的日期条目不会打印

Date entries in the array are not printed

本文关键字:打印 日期 数组      更新时间:2023-09-26

我刚刚创建了一个动态HTML表单,其中两个字段的类型为date。这两个字段将它们的数据发布到两个数组中。我有两个问题:

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

有什么想法吗?谢谢

在您的按钮上,您多次使用元素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将仅在找到的第一个#btAdd上附加$('#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 () {
    [...]
});

试试这个:我知道它不是答案,但使用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;

您正在使用jQuery,因此我强烈建议您使用jQuery selector

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

其中CCD_ 8用于CCD_。