у меня аякс. в
$.each(data, function(i, item) {
$('.remaining').val(item.arrears)
});
.remaining
входное значение не меняется при изменении. Кто-нибудь знает, как это сделать
это. Я новичок в JQuery. Ниже вы можете найти JQuery, который я использую.
<script type = "text/javascript">
$("select[name='student_detail_id']").change(function() {
var student_detail_id = $(this).val();
console.info(student_detail_id);
var token = $("input[name='_token']").val();
$.ajax({
url: "<?php echo url('admin/remaining_fee') ?>",
method: 'POST',
data: { student_detail_id: student_detail_id, _token: token },
success: function(data) {
console.info(data);
$(".remaining").each(function() {
$(this).find('input').not(':first').remove();
});
$.each(data, function(i, item) {
$('.remaining').val(item.arrears)
});
}
});
});
</script>
<div class = "form-group">
<label for = "email">Remaining</label>
<input type = "text" class = "form-control remaining" name = "" id = "" required = "" Readonly /></div>
Я хочу, чтобы при изменении выберите val() изменить.
и можете ли вы показать нам .remining
в образце HTML?
@MishelParkour на самом деле я копирую с любого сайта. поэтому я использую. кстати это не работа. я думаю.
@MishelParkour проверить редактирование.
html пожалуйста. дайте нам html-код, который содержит .remaining
Установка значения с помощью JavaScript не запускает прослушиватели событий. $('.remaining').val(item.arrears).trigger('change');
Я предлагаю вам заменить это:
$.each(data, function(i, item) {
$('.remaining').val(item.arrears)
});
с этим:
$("select[name='student_detail_id']").change(function() {
var student_detail_id = $(this).val();
console.info(student_detail_id);
var token = $("input[name='_token']").val();
$.ajax({
url: "<?php echo url('admin/remaining_fee') ?>",
method: 'POST',
data: { student_detail_id: student_detail_id, _token: token },
success: function(data) {
console.info(data);
$(".remaining").each(function() {
// here we empty the container to make it ready to add items
$('.inputContainer').html('');
//$(this).find('input').not(':first').remove();
});
$.each(data, function(i, item) {
//here we create an element
const $input = $('<input />')
.addClass('form-control remaining')
.attr('name','remaining')
.attr('id', 'remaining_'+i)
.attr('type', 'text')
.attr('readonly', 'readonly')
.val(item.arrears)
// here we append it into container
$('.inputContainer').append($input);
});
}
});
});
и html что-то вроде:
<div class = "form-group">
<label for = "email">Remaining</label>
<input type = "text" class = "form-control remaining" name = "" id = "" required = "" Readonly />
<div class = "inputContainer" >
</div>
</div>
Вот как вы добавляете элемент с помощью jQuery. и тогда вы можете сделать $('#container').append($element)
Здорово. мы можем удалить <input type = "text" class = "form-control оставшийся" name = "" id = "" required = "" Readonly /> или <div class = "inputContainer" > ??
почему вы хотите их удалить? да, вы можете, но вам нужно как-то указать jquery, куда поместить эти недавно добавленные элементы. самый простой способ - иметь элемент контейнера (как я показал его в своем коде), вы можете удалить первый ввод, если не хотите, чтобы он был там
вот как теперь надо делать. во-первых, для чего вы используете
$(this).find('input').not(':first').remove();
?