2017-01-04 3 views
-1

Я пытаюсь создать форму. Я хочу, чтобы мой клиент мог вводить текст в текстовое поле, а затем выбрать элемент из раскрывающегося списка, выпадающий список создается из запроса базы данных, который превращает его в json, а затем выбранное значение json представлено в выпадающий список. Я приложил изображение, которое, я надеюсь, объяснит это лучше. form drawinghtml форма с выпадающими меню отправить форму на кнопку отправки

+0

выпадающий ссылки. Вы можете уточнить? – Ced

+0

Добавить event.preventDefault() в window.onclick, чтобы предотвратить сообщение – gmdev86

+0

Привет, gmdev86, выпадающие списки не будут ссылками.Я получаю два значения из базы данных, но представляю только одно из этих значений с намерением использовать другое значение, которое является уникальным для извлечения данных позже. –

ответ

0

Я не уверен, что это то, что вы ждали, но так как вы не отвечаете ...

Если вы хотите, чтобы предотвратить это: event.preventDefault();

event.preventDefault(); есть так же, как группа исправление. EG Это предотвращает поведение по умолчанию. Однако в вашем коде ничего не сказано, что форма должна быть отправлена, когда вы нажимаете на кнопку, чтобы она не была отправлена. Я предполагаю, что вы не используете кнопку, а вместо кнопки отправки.

В любом случае вы можете использовать onsubmit произвести проверку перед подачей:

onsubmit="validateMyForm()" 

и поведение по умолчанию, если некоторые условия не выполняются.


Вы сказали, что эти ссылки здесь как владелец места. Это меня очень смутило, прежде чем читать это, поэтому я должен снова отредактировать свой ответ. Пожалуйста, в следующий раз используйте что-то более неактуальное, например, пробелы или div.

Да, вы можете указать ввод в этом раскрывающемся списке, чтобы ответить на ваш комментарий.


Secundo, у вас есть несколько выпадающих списков?

window.onclick = function(event) { 
    if (!event.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    var i; 
    for (i = 0; i < dropdowns.length; i++) { 
     var openDropdown = dropdowns[i]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
    } 
} 

Эта часть будет охватывать все элементы с выпадающим классом, и у вас есть только один элемент, так почему цикл? Возможно, у вас есть несколько выпадающих списков, поэтому нажатие в любом месте страницы закрывает все выпадающие меню.

если (! Event.target.matches ('dropbtn'))

Что это матчи? Кнопка. Таким образом, щелчок в любом месте, кроме кнопки, заставит выпадающие меню закрыть. Но вы хотите закрыть раскрывающийся список, когда вы нажимаете на элемент указанного выпадающего списка?


То, что я пытаюсь донести до вас с этим, что, как представляется, недостатки в пользовательском опыте вы пытаетесь сделать.

дальнейшее чтение:

+0

Это потрясающе спасибо. Включит ли это падение в данные, которые могут быть отправлены на страницу php, или я должен изменить способ представления списка. –

+0

@ChrisField нет, нет, нет. Вы использовали ссылки для данных формы. это не правильно. Я отредактирую свой ответ – Ced

+0

Извинения за причинение путаницы, я новичок в этом. –

Смежные вопросы