Как передать динамически созданные значения текстового поля из JavaScript в контроллер MVC - PullRequest
0 голосов
/ 08 марта 2019

Javascript, который создает различное количество динамических текстовых полей в зависимости от предпочтений пользователя. Моя страница JSP содержит несколько раскрывающихся списков и приведенный ниже код для создания динамического текстового поля.

<div id='TextBoxesGroup' style="display: inline-table;"><br>
<script>
    $("#addButton").click(function () {
            var selectfield = $('#selectcolumnlist option:selected').val();
            if(counter > 3)
            {
                alert("Only 3 textboxes allowed");
                return false;
            }
            if (selectfield == ""|selectfield == null)
            {
                alert("Missing selection to create condition");
                return false;
            }
            var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv');   
            newTextBoxDiv.after().html('<input type="text" name="textbox_' + selectfield + '" class="form-control" id="textbox_'+selectfield+'" placeholder="' + selectfield + '" value="" style="width: 390px;margin-left: 10px"/><input type="button" value="Remove Field" class="remove_this" id="removeid" accessKey="'+selectfield+'"/>');
            newTextBoxDiv.appendTo("#TextBoxesGroup");
            $('#selectcolumnlist option:selected').remove();
            counter++;
        });

        $("#TextBoxesGroup").on('click', '#removeid', (function() {
            var a = $(this).attr('accessKey');
            alert(a);
            $(this).parent('div').remove();
            $('#selectcolumnlist').append(new Option(a,a));
            counter--;
        }));
</script>

Я хочу передать идентификатор динамически созданного текстового поля и его значения внутри карты в контроллер.

function submitform() {
    alert("inside submit");
    var ele = document.getElementsByTagName('input');
    var map = new Map(); // or var map = {};
    for (i = 0; i < ele.length; i++) {
        if (ele[i].type == 'text' && ele[i].value != null && ele[i].value != '') {
            alert("setting map values");
            alert(ele[i].placeholder+" "+ele[i].value);
            map.set(ele[i].placeholder,ele[i].value);
        }
    }
    $.ajax({
        type : 'POST',
        url : 'test',
        contentType: 'application/json; charset=utf-8',
        data : JSON.stringify(map),
        error : function(response) {
            alert("Operation failed.");
        },
        success : function(response) {
            alert("Success");
        }
    });
}

Но вышеуказанная функция отправки не работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...