아래 코드는 클래스가 적용되는 모든 <input type="hidden" />
필드에 대해이 논리를 적용합니다. 가장 멋진 코드는 아닐지도 모르지만 내가 원하는대로 수행합니다. :-)
$("input[type='hidden'].endlessinput").each(function (i, n) {
$parent = $(n).parent();
$br = $('<br />');
// define a textbox for each value and add an additional empty one
var createInput = function() {
var input = $('<input id="'+guid()+'" type="text" value="" />');
input.unbind('keyup');
input.bind('keyup', function() {
// rebuild the array with values
var arr = [];
$("input[type='text']", $parent).each(function (k, y) {
arr.push($(y).val());
});
$(n).attr('value', arr.join(';'));
// Add another input field if no empty one is available
emptyInputs = $('input:text[value=""]', $parent).filter(function (o, p) { return $(p).val() == '' });
if (emptyInputs.length == 0) {
$($("br", $parent).last().length > 0 ? $("br", $parent).last()[0] : $(n)).after(createInput(), "<br />");
} else if (emptyInputs.length > 1) {
emptyInputs.not(':first').each(function (ix, inp) {
$(inp).next('br').remove()
$(inp).remove();
});
}
});
return input;
}
// get values in an array
var values = $(n).val().split(';');
$(values).each(function (j, x) {
var newInput = createInput();
newInput.attr('value', x);
$($("br", $parent).last().length > 0 ? $("br", $parent).last()[0] : $(n)).after(newInput, "<br />");
});
$($("br", $parent).last().length > 0 ? $("br", $parent).last()[0] : $(n)).after(createInput(), "<br />");
});
3 분 이내에 질문에 대한 답변을 작성 했습니까? 대답을 보는 것은 확실히 3 분 이상을 쓰는 것처럼 보입니다. 귀하의 질문에 그것을 추가 하시겠습니까? 아니면 대답으로 남겨 두길 원하십니까? – KSK
나는 이것에 대해 적절한 해결책을 찾지 못했기 때문에 향후 참조를 위해 stackoverflow에 갖고 싶었 기 때문에 이것을했다. 그리고 이런 식으로 저는 지역 사회에 기여하고 싶었습니다. 다른 방법이 있다면, 나는 적응할 것이다. 왜 질문에 넣어? – Peter