jQuery를 사용하여 숫자로 동적 텍스트 상자를 만드는 방법은 무엇입니까?
이것은 지금 내 코드입니다.
$(document).ready(function() {
counter = 1;
}).on('click', '.btn-add', function(e) {
e.preventDefault();
counter = counter + 1;
var controlForm = $('.controls'),
currentEntry = $(this).parents('.entry:last'),
newEntry = $(currentEntry.clone()).appendTo(controlForm);
newEntry.find('input').val('');
controlForm.find('.entry:not(:first) .btn-add')
.removeClass('btn-add').addClass('btn-remove')
.removeClass('text-success').addClass('text-danger')
.html('-');
currentEntry.find('.input-box')
.attr('name', 'subject')
.attr('placeholder', 'Materia ' + String(counter));
}).on('click', '.btn-remove', function(e) {
$(this).parents('.entry:last').remove();
counter = counter - 1
$(this).parents('.entry').each(function() {
$(this).parents('.entry:last').attr('placeholder', 'Materia ' + String(counter));
})
e.preventDefault();
return false;
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="type-elements" class="controls">
<div class="form-row entry">
<div class="form-inline mb-3">
<a role="button" class="btn btn-link text-success btn-add mr-1" href="">+</a>
<input type="text" class="form-control mr-1 input-box" placeholder="Materia 1" required name="subject">
</div>
<div class="col">
<select class="custom-select mb-3" required multiple size="3" name="classes">
<option disabled>Seleziona una o più classi</option>
<option>2DM</option>
<option>2AM</option>
<option>2DM</option>
<option>2AM</option>
</select>
</div>
</div>
</div>
텍스트 상자가 제거되면 번호를 다시 주문하고 싶습니다.
. + 텍스트 상자 1
.- 텍스트 상자 2
.- 텍스트 상자 3
기타
(점은 자동 정렬되지 않은 목록을 피하기위한 것입니다.)
클릭 할 때마다 .input-box
페이지에 몇 개가 있는지 제어하는 기능을 만들어 점진적인 숫자로 자리 표시자를 변경했습니다.
function controllo() {
var counter = 1;
$(".input-box").each(function() {
$(this).attr('placeholder', 'Materia ' + counter);
counter++;
})
}
또한 몇 줄의 코드에 대해 주석을 달았습니다. 그게 다야.
결과:
$(document).ready(function() {
//counter = 1;
}).on('click', '.btn-add', function(e) {
e.preventDefault();
//counter = counter + 1;
var controlForm = $('.controls'),
currentEntry = $(this).parents('.entry:last'),
newEntry = $(currentEntry.clone()).appendTo(controlForm);
newEntry.find('input').val('');
controlForm.find('.entry:not(:first) .btn-add')
.removeClass('btn-add').addClass('btn-remove')
.removeClass('text-success').addClass('text-danger')
.html('-');
currentEntry.find('.input-box')
.attr('name', 'subject')
//.attr('placeholder', 'Materia ' + String(counter));
controllo();
}).on('click', '.btn-remove', function(e) {
$(this).parents('.entry:last').remove();
/*counter = counter - 1
$(this).parents('.entry').each(function() {
$(this).parents('.entry:last').attr('placeholder', 'Materia ' + String(counter));
})*/
e.preventDefault();
controllo();
return false;
});
function controllo() {
var counter = 1;
$(".input-box").each(function() {
$(this).attr('placeholder', 'Materia ' + counter);
counter++;
})
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="type-elements" class="controls">
<div class="form-row entry">
<div class="form-inline mb-3">
<a role="button" class="btn btn-link text-success btn-add mr-1" href="">+</a>
<input type="text" class="form-control mr-1 input-box" placeholder="Materia 1" required name="subject">
</div>
<div class="col">
<select class="custom-select mb-3" required multiple size="3" name="classes">
<option disabled>Seleziona una o più classi</option>
<option>2DM</option>
<option>2AM</option>
<option>2DM</option>
<option>2AM</option>
</select>
</div>
</div>
</div>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다