показать div на основе значения текстового поля

0

У меня есть поле ввода, которое получает его значение из db, давайте скажем, что это значение M, K, H, J, V или G в зависимости от значения, которое необходимо открыть div с aaa, bbb, ccc, ddd, eee или fff как текст.

Код, который отображается на странице, следующий, я оставил часть извлечения из db, что часть работает (поле ввода показывает M, K, H, J, V или G в зависимости от идентификатора).

echo "<input type='text' name='periode' id='periode' data-related-item='" .$row['periode']. "' value='" .$row['periode']. "'>";
echo "<div class='hidden'><div id='M'>aaa</div></div>";
echo "<div class='hidden'><div id='K'>bbb</div></div>";
echo "<div class='hidden'><div id='H'>ccc</div></div>";
echo "<div class='hidden'><div id='J'>ddd</div></div>";
echo "<div class='hidden'><div id='V'>eee</div></div>";
echo "<div class='hidden'><div id='G'>fff</div></div>";

Когда я проверяю исходный код в режиме разработчика, он показывает, что часть, связанная с данными, правильно извлекается из db:

<input type="text" name="periode" id="periode" data-related-item="M" value="M">

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

<script type="text/javascript">
function evaluate1(){
var item = $(this);
var relatedItem = $("#" + item.attr("data-related-item")).parent();

if(item.is(":checked")){
    relatedItem.fadeIn();
}else{
    relatedItem.fadeOut();   
}
}

$('input[type="checkbox"]').click(evaluate1).each(evaluate1);
</script> 

Самый простой подход - это переход на смену:

$('input[type="checkbox"]').click(evaluate1).each(evaluate1);

в

$('input[type="textbox"]').click(evaluate1).each(evaluate1);

Но что мне нужно сделать:

if(item.is(":checked")){

Спасибо за любую помощь заранее.

Я попробовал следующее, но это не работает.

if(item.is("M||K||H||J||V||G")){

РЕШЕНИЕ РОБЕРТА РОЗАСА

Решение находится в jsfiddle

http://jsfiddle.net/dXTtz/7/

  • 0
    Почему бы вам не выполнить вызов ajax и не загрузить требуемый вывод в div в соответствии с введенной вами строкой?
  • 1
    Я не знаю, как сделать вызов ajax, и я не ввожу строку. значения M, K, H, J, V или G извлекаются из БД. Я не заполняю их.
Показать ещё 5 комментариев
Теги:
textbox

1 ответ

2
Лучший ответ

Я сделал этот код на основе кода, который вы предоставляете:

$(document).ready(function(){

$("#periode").keyup(function(){
 var valor = $("#periode").val();
    $(".hidden").each(function(){
     var hijo = $(this).children().attr('id');   
     if(hijo == valor)
     {
      $(this).removeClass("hidden");
     }
    });
});

});

Рабочая скрипка здесь: http://jsfiddle.net/robertrozas/dXTtz/2/

Этот способ работает с загрузкой страницы: http://jsfiddle.net/robertrozas/dXTtz/4/

Загрузка страницы и удаление лишних скрытых div: http://jsfiddle.net/dXTtz/5/

  • 1
    Спасибо, это очень близко к тому, что я хочу. Я сделал небольшое изменение. jsfiddle.net/dXTtz/3 Как мне нужно изменить JavaScript, чтобы он работал при загрузке страницы. потому что значение не набрано, а получено из базы данных.
  • 1
    Я обновляю ответ.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню