Что я пытаюсь сделать здесь, у меня есть 1 поле выбора и один вход.
В поле выбора есть 3 варианта со значениями 1,2 и 3, а вход - в div с идентификатором INPUT.
Я хочу здесь, когда я выбираю параметры со значением 3, чтобы удалить весь тег div с идентификатором INPUT, а затем, когда я снова нажимаю пример на 1 или 2, тег DIV добавится снова. Но когда я нажимаю 1 или 2, тег div добавляется снова и снова.
Есть ли возможность проверить, существует ли тег div и не добавлять.
Вот мой jQuery:
$('select').change(function(){
var val = $(this).val();
if(val == '3'){
$('#INPUT').remove();
}
if(val !== '3'){
$('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>');
}
});
Любая помощь будет оценена. Благодарю.
Да, это возможно. Измените это:
if(val !== '3'){
к этому:
if(val != '3' && $("#INPUT").size() == 0){
Таким образом, мы спрашиваем, есть ли еще div с id = INPUT
, если его нет, тогда мы добавим его.
ура
Проверьте, существует ли элемент с идентификатором INPUT
перед добавлением нового
if (val != '3' && !$('#INPUT').length) {
$('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>');
}
Демо: скрипка
Также вы можете точно настроить условие if
потому что если значение не равно 3, вы хотите иметь поле ввода, поэтому нет необходимости в втором, если условие просто использует блок else
в первом условии
$('select').change(function () {
var val = $(this).val();
if (val == '3') {
$('#INPUT').remove();
} else if (!$('#INPUT').length) {
$('.valuta').before('<div id="INPUT"><input type="text" class="price"></div>');
}
})
Демо: скрипка