2015-04-02 2 views
0

Я пытаюсь использовать jQuery для ввода значения ввода, и если это правда, подтвердите («Правильно!») ;. Это очень удобно. Подтверждение неверно, говорит: «Правильно!» когда ответ неверен и «Неверно!». когда ответ правильный. Когда я сказал, что правильный ответ === false, он сказал, что все верно. Как это исправить?
HTML:Использование jQuery для ввода значения ввода. Работает, но подтверждение неверно

<input type="textbox" id="best-programmer" placeholder="(e.g. Jonathan)"> 
     <button id="btn-1">Enter</button><br> 

JQuery:

$(document).ready(function(){ 
    $('#btn-1').on("click", function(){ 
    if ($('#best-programmer').val('Brendon') === true){ 
     confirm("Correct!"); 
    } else { 
     confirm("Incorrect!"); 
    } 
    }); 
}); 

ответ

2

Проблема заключается в вашем случае.

Если вы хотите сравнить значение входа, вы выполняете функцию .val().

Как это:

if ($('#best-programmer').val() === 'Brendon') 

Если вы .val ('что-то'), значение на входе меняется. Как вы можете видеть в своей скрипке, если вы сначала напечатаете: Jonathan, а затем подайте, значение входных данных изменится на Brendon.

+0

Спасибо большое: D –

0

Метод .val() устанавливает или возвращает значение. Вы использовали его для установки значения.

$(document).ready(function(){ 
    $('#btn-1').on("click", function(){ 
    if ($('#best-programmer').val() === 'Brendon'){ 
    confirm("Correct!"); 
    } else { 
    confirm("Incorrect!"); 
    } 
}); 
}); 
+0

У меня есть вопрос, чтобы убедиться, что ответ правильный. Я хочу использовать .toUpperCase(), чтобы сделать значение его заглавной буквы после нажатия «войти». Пока что мой код не работает (я использовал .val(). ToUpperCase()). Как ты делаешь это? –

+0

toUpperCase() преобразует всю строку в верхний регистр. Вы должны проверить, нравится ли это: .val(). ToUpperCase() === 'BRENDON'. Кстати, вы можете принять в качестве ответа Джоэл Алмейдас ответ, так как похоже, что он решил вашу проблему. –

+0

$ ('# btn-1'). On ("click", function() { var brendon = $ ('# best-programmer'). Val(); brendon = brendon.toUpperCase(); if (brendon === 'BRENDON') { подтвердить («Правильно!»); } else { подтвердить («Неверно!"); } document.getElementById ('best-programmer'). Disabled = true; –

0

Ваш код будет заменить значение на входе # лучший программист с «Брендон» и в случае успеха будет верным. Вместо того, чтобы заменить верно с «Брендон» и удалить «Брендон» от Val(), как это:

if ($('#best-programmer').val() === 'Brendon'){ 
0

Вы делаете общую ошибку с JQuery Валу() вызывает.

var value = $ ('# selectorid'). Val();

считывает значение и присвоить это значение переменной значение, которое можно проверить в равенствах и т.д., где, как

$ («# selectorid») Вал («Брендон»).

установит значение выбранного элемента в значение «Брендон», независимо от того, какое значение оно удерживало ранее.

В вашем операторе if, поэтому $ ('# best-programmer'). Val ('Brendon') не считывает значение выбранного элемента, а каждый раз, когда нажимается кнопка, значение 'Brendon' даже если что-то другое, кроме Брендона. Попробуйте использовать код примера, который я изменил ниже.

$(document).ready(function(){ 
     $('#btn-1').on("click", function(){ 
      if ($('#best-programmer').val() == 'Brendon'){ 
       confirm("Correct!"); 
      } else { 
       confirm("Incorrect!"); 
      } 
     }); 
    }); 
Смежные вопросы