#javascript #jquery
#javascript #jquery
Вопрос:
elow — это код, который я использую, я могу добавить новое поле ввода при нажатии, но оно должно прекратить добавление на основе пользовательского ввода, например, no. из введенных пользователем как 4 на основе этого добавления поле ввода должно остановиться
в приведенном ниже примере: -$bookcount — это поле ввода пользователя, которое поступает из поля ввода html
var i = 1;
if(i>$(bookcount))
{
$('#add').click(function()
{
i ;
$('#dynamic_field').append('<tr id="row' i '"><td><input type="text" name="title[]" </td><td><button type="button" name="remove" id="' i '" class="btn btn-danger btn_remove">X</button></td></tr>');
}});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row' button_id '').remove();
});
$('#submit').click(function(){
$.ajax({
url:"name.php",
method:"POST",
data:$('#add_name').serialize(),
success:function(data)
**strong text** {
alert(data);
$('#add_name')[0].reset();
}
});
});
Комментарии:
1.
$(bookcount)
дает вам объект jquery — возможно, вы имели в видуif (i > ($(bookcount).val() * 1)) ...
2. Разве это не должно
(i < $(bookcount).val())
предполагать, что у вас естьvar bookcount = $('#bookcount-input');
3. Это работает, большое спасибо @freedomn
Ответ №1:
Следует отметить пару проблем:
- Предполагая
bookcount
, что найдено,$("#bookcount")
тогда вам нужно будет получить.val()
и преобразовать его в число (как «10»<«2») - Проверьте значение bookcount внутри события click:
var i = 1;
var bookcount = $("#bookcount");
$('#add').click(function() {
if (i>(bookcount.val()*1)) {
// do nothing
return false;
}
i ;
$('#dynamic_field').append('<tr....
- поскольку у вас также есть функция удаления, не забудьте уменьшить
i
при удалении
$(document).on('click', '.btn_remove', function(){
--i;
(в этом случае я рекомендую что-то другое, чем i
, например rowCount
).
Вы также можете отказаться от i
функции ( rowCount
), запросив, сколько строк было создано динамически:
var bookcountinput = $("#bookcount");
$('#add').click(function() {
var rows = $("#dynamic_field tr").length;
if (rows > bookcountinput.val()*1)
return;
$('#dynamic_field').append('<tr....
});
Комментарии:
1. Спасибо, братан, за ответ, но у меня это не работает. это позволяет n нет. времени для добавления новых полей.. вы можете видеть, что я добавляю свой экран пользовательского интерфейса выше. его нет. взрослых — 2, но это не останавливает меня, добавляя количество человек только до 2.
2. Да, вам может потребоваться небольшая настройка, чтобы получить именно то, что вы хотите, например, используйте
rows >= bookcountlimit
, если у вас исправлена первая строка, а ограничение — это количество дополнительных строк для добавления. Рад, что вы разобрались.