Member 13858049 Ответов: 1

Код Jquery не работает


Здравствуйте, Мэйби, кто-нибудь может помочь мне сделать этот код с примером кода для работы, однако я ничего не делаю, и я спрашиваю себя, что я делаю не так.

Код должен сделать входную границу красной или зеленой, когда кто-то вводит слово, которое соответствует даталисту, или нет (тогда оно красное)

let btn = $("#btnSend");
let form = $("#zeForm");
let input = $("#zeInput");
let msg = $("#msg");
let allowedValues = ["atown", "btown", "ctown"]; // same values as the options in your datalist


btn.on('click' , function() {
    let allGood = false;

    allowedValues.each(function(index, element) {
        if (element === input.value) {
            allGood = true;
            return;
        }
    })

    if (allGood) {
        msg.text("Success!!");
        msg.attr('style',"color:green");
        //form.submit();
    } else {
         msg.text("This value is not accepted";
         msg.attr('style',"color:red");
    }
   msg.attr('style',"display:inline");

});



The html code for test:
<pre lang="HTML">
<pre><form id="zeForm">
    <input id="zeInput" type="text" list="typ" name="name" placeholder="gtown" > 
        <datalist id="typ">
            <option value="atown">atown</option> 
            <option value="btown">btown</option> 
            <option value="ctown">ctown</option> 
        </datalist> 
    </input>
    <p id="msg"></p>
    <button id="btnSend" type="button">send</button>
  </form>


Что я уже пробовал:

Раньше у меня был код javaskript, который я пытаюсь перевести в jquery, однако до сих пор код jquery не работает с примером, но код javaskript работает. видеть:

Как преобразовать этот код javascript в jquery[^]

Member 13812021

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

ThilinaMD

У вас есть связь jquery.js досье?

1 Ответов

Рейтинг:
1

Richard Deeming

Несколько ошибок в вашем коде:

Таблицы
То <datalist> не может быть вложен внутрь <input>:

<input id="zeInput" type="text" list="typ" name="name" placeholder="gtown" />
<datalist id="typ">
    <option value="atown">atown</option> 
    <option value="btown">btown</option> 
    <option value="ctown">ctown</option> 
</datalist>

Каждый
Вы не можете использовать allowedValues.each(fn); вы должны использовать $.each(allowedValues, fn):
$.each(allowedValues, function(index, element) {
jQuery.each() | документация по API jQuery[^]

Ценность
Объект jQuery не содержит свойства с именем value; вам нужно использовать val() метод вместо этого:
if (element === input.val()) {
.val() | документация по API jQuery[^]

Кроме того, звоню .attr("style", "...") будет переписывать стиль элемента. Чтобы изменить индивидуальный стиль, используйте то css() метод[^] вместо:
msg.css("color", "green");
...
msg.css("color", "red");
...
msg.css("display", "inline");

Демонстрация[^]