如何动态更改选择框的名称属性

时间:2014-07-12 20:10:28

标签: javascript php html

以下Javascript动态添加另一个选择框' on change'原始选择框。我遇到的问题是,当它创建新的选择框时,它会给它相同的名称'并且' id'作为原始选择框。因此,当我对表单执行提交操作时,最后一个选择框是提交的唯一值。如何更改姓名'和/或' id'新创建的选择框的属性?老实说,我对Javascript很新,所以如果这是一个简单的修复,我会道歉。提前谢谢你!

$(function () {
var values = new Array();

$(document).on('change', '.form-group-multiple-selects .input-group-multiple-select:last-child select', function () {

    var selectsLength = $('.form-group-multiple-selects .input-group-multiple-select select').length;
    var optionsLength = ($(this).find('option').length);



        var sInputGroupHtml = $(this).parent().html();
        var sInputGroupClasses = $(this).parent().attr('class');
        $(this).parent().parent().append('<div class="' + sInputGroupClasses + '">' + sInputGroupHtml + '</div>');



    updateValues();

});

$(document).on('change', '.form-group-multiple-selects .input-group-multiple-select:not(:last-child) select', function () {

    updateValues();

});

$(document).on('click', '.input-group-addon-remove', function () {
    $(this).parent().remove();
    updateValues();
});

function updateValues() {
    values = new Array();
    $('.form-group-multiple-selects .input-group-multiple-select select').each(function () {
        var value = $(this).val();
        if (value != 0 && value != "") {
            values.push(value);
        }
    });

    $('.form-group-multiple-selects .input-group-multiple-select select').find('option').each(function () {
        var optionValue = $(this).val();
        var selectValue = $(this).parent().val();

    });
}

function in_array(needle, haystack) {
    var found = 0;
    for (var i = 0, length = haystack.length; i < length; i++) {
        if (haystack[i] == needle) return i;
        found++;
    }
    return -1;
}

})

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用数组作为选择框?

第一个,以及随后的任何一个

<select name="example[]"></select>

然后只需在表单提交上处理数组,就可以检查大小,然后在大小为&gt;的情况下执行foreach循环。 1