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");
}
});
}
Но вышеуказанная функция отправки не работает должным образом.