Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2021, 22:14
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Скрыть результат аякс запроса
Привет.
<input onclick="SelectCtype(this)" name="ctype-check" value="id" type="checkbox" />
<div id="id"><label>Text</label></div>


function SelectCtype(e) {

    var inp = document.querySelector("input[name='ctype-check']:checked");
    var container = document.getElementById(inp.value);
    var div = document.createElement("div");
    div.className = 'custom-control custom-checkbox mb-1';
    var lab = document.createElement("label");
    lab.className = 'field-label';
    div.appendChild(lab);
    container.appendChild(div);

    if ($(e).is(':checked')){
 
    $.ajax({
        type: 'POST',
        url: '',
        data: {
            'ctype_id': e.value
        },
        success: function (data) {
            var obj = JSON.parse(data);
            $('.field-label').html(obj);

        }
    });
}else{
    
    alert()
}
}

Если снимаю галочку с чекбокса,нужно скрыть результат аякса. А так у меня даже alert() не работает. Help!
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2021, 23:06
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

И ни одного сообщения в консоле?

При первом клике галочка появится.
При втором клике галочка уберется и inp будет null

Последний раз редактировалось voraa, 30.11.2021 в 23:12.
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2021, 06:26
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Всё так и есть.inp null, а реакции никакой. В консоле показывает, красным,что inp null)
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2021, 06:43
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Я подозреваю,что у меня проблемы с выводом аякса. У меня чекбоксов
<input onclick="SelectCtype(this)" name="ctype-check" value="id" type="checkbox" />
<div id="id"><label>Text</label></div>

несколько. Это список категорий. Мне надо, что бы при выборе одной открывались её подкатегории. А у меня,если я кликаю на первой, выводит под ней,как и надо,но потом,если кликаю по второй, выводит под первой в двух экземплярах. Получается создаётся блок для вывода не под тем,гле я кликнул, о там,,где :checked

Последний раз редактировалось ureech, 01.12.2021 в 06:46.
Ответить с цитированием
  #5 (permalink)  
Старый 01.12.2021, 06:59
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от ureech
<input onclick="SelectCtype(this)" name="ctype-check" value="id" type="checkbox" />
Сообщение от ureech
А у меня,если я кликаю на первой, выводит под ней,как и надо,но потом,если кликаю по второй, выводит под первой в двух экземплярах.
Если везде name="ctype-check", то всегда будет находить первый отмеченный
Если отмеченных нет, то всегда будет inp = null

Зачем вообще
var inp = document.querySelector("input[name='ctype-check']:checked");

У вас же e - тот input, по которому кликнули.
Ну и проверяйте сразу
if (e.checked) {
// показываем
} else {
// скрываем
}

Последний раз редактировалось voraa, 01.12.2021 в 07:14.
Ответить с цитированием
  #6 (permalink)  
Старый 01.12.2021, 07:49
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Разобрался. Немного переделал. Не стал мудрить с созданием блоков.
<input onchange="SelectCtype(id,id_in)" name="ctype-check" value="1" id="id" type="checkbox" />
<div id=""><label>Text</label></div>
<div id = id_in" style = "display: none;"></div>


function SelectCtype(id,div_id) {

inp = document.getElementById(id);
div = document.getElementById(div_id);
if (inp.checked){
...
success: function (data) {
..
div.style.display = "block";
}
..

}else{
div.style.display = "none";
}

}
Ответить с цитированием
  #7 (permalink)  
Старый 01.12.2021, 08:56
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Теперь другая проблема. Подкатегории открываются только если кликаю на категории по убывающей. То есть снизу вверх. Сверху вниз, через раз.
Ответить с цитированием
  #8 (permalink)  
Старый 01.12.2021, 09:12
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Но это наверное вопрос к серверу. Буду там смотреть
Ответить с цитированием
  #9 (permalink)  
Старый 01.12.2021, 09:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Приведите код, где у Вас несколько таких инпутов
и весь код скрипта, где они появляются/скрываются.
Ответить с цитированием
  #10 (permalink)  
Старый 01.12.2021, 09:41
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 770

Попробую.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить результат выполнения $.post запроса begovik AJAX и COMET 16 12.03.2021 15:44
Почему результат такого же запроса пустой? Wynell AJAX и COMET 2 23.05.2020 13:00
как получить результат от ajax запроса (из отдельного файла) 1Feniks1 AJAX и COMET 0 12.03.2017 18:45
Получить значение текст.поля с помощью аякс запроса espltd Элементы интерфейса 1 26.06.2015 13:02
результат от запроса jquery korner Общие вопросы Javascript 3 14.01.2011 16:05