2015-09-24 2 views
0

У меня есть html-страница с двумя текстовыми полями ввода. С javascript я объявляю два массива с числами и именами.Поиск в массивах с javascript для записи

номер - имя:

1 - Джон

2 - Сара

3 - Питер

Когда я пишу число на входе А, мне нужно имя на входе B появляется , и если я напишу имя на входе B, мне нужно, чтобы номер появился на входе A

Пример: Я пишу «Сара» на входе B, а на входе A появляется цифра «2» на дисплее A

Пример 2: Я пишу и появляется «1» на входе А «Джон» на входе B

+0

как насчет использования массива 'name' и используя индекс как число? –

+7

Итак, что вы пробовали? Попробуйте сначала решить вашу проблему, затем перейдите в Google, затем повторите попытку немного сложнее и, наконец, придите сюда, чтобы задать вопрос (публиковать все данные и неудачные попытки). Добро пожаловать в StackOverflow BTW :) –

+1

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

ответ

0

если вы используете чистый JS, нужно определить OnKeyUp событие в вашем входе и изменить 2 массива по карта (хэш или словарь) вот код:

<input id="name" type="text" onkeyup="SearchText(this.value)"/> 
<input id="value" type="text" onkeyup="SearchId(this.value)"/> 
<script> 
    function SearchText(val) { 
     txt = document.getElementById("value") 
     if (val.toLowerCase() in Persons) { 
      txt.value = Persons[val.toLowerCase()]; 
     } else { 
      txt.value = '';  
     } 
    }; 

    function SearchId(val) { 
     txt = document.getElementById("name"); 
     for (p in Persons) { 
      if (Persons[p] == val){ 
       txt.value = p; 
       break; 
      } else { 
       txt.value = ''; 
      } 
     } 
    }; 
</script> 

Лица является карта:

Persons = { 
'john':1, 
'sara':2, 
'peter':3 
}; 

эта скрипка может помочь вам:

Example Fiddle

+0

Это именно то, что мне нужно! большое спасибо! – godie

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