JQuery добавить значение для ввода HTML в зависимости от другого ввода - PullRequest
1 голос
/ 22 марта 2010

Хорошо, название немного сбивает с толку, но вот мое затруднение. Я сделал веб-приложение для внутреннего отслеживания пакетов ИБП на работе. В настоящее время вы вводите номер для отслеживания, а затем выбираете город, из которого он был отправлен. Все номера отслеживания из учетной записи начинаются с одинакового количества X номеров. Таким образом, если кто-то введет «1Z8473 ...» в один вход, «Хьюстон, Техас» будет автоматически введен в следующий вход. Это сложно сделать? С чего бы мне начать?

Ответы [ 3 ]

2 голосов
/ 22 марта 2010

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

Тривиальный пример:

<label for="code">Code:</label> <input type="text" id="code" />

<label for="area">Area:</label> <input type="text" id="area" />

<script type='text/javascript'>
    $(document).ready(function(){
        // Listen for change on our code input
        $('#code').keyup(function(){
            var entered = $(this).val();  // text entered in 'code'

            // Look up the start of the code (first 6 digits?)
            if(entered.substring(0,6) == '1Z8473')
            {
                // Set the value of our "area" input
                $('#area').val('Houston, TX');
            }
        });
    });
</script>

В приведенном выше примере для сопоставления используется простой блок if. Как и другие, размещенные здесь, вы можете отправить это значение в сценарий на стороне сервера, который выполняет геолокацию для необходимых областей. Таким образом, заменив if выше на что-то вроде:

// Look up the area depending on the code entered
$.getJSON(
    '/geocoder_on_your_site.php?area='+entered, 
    function(data) {
        $('#area').val(data.location);
});

и на вашем сервере, в geocoder_on_your_site.php:

$input = $_REQUEST['entered'];
// Assume input is sanitised & checked first..
...
// Look up the area base on location
$data['location'] = look_up_location($input);

echo json_encode($data);
0 голосов
/ 22 марта 2010

Проверьте наличие событий keyup и отправьте ввод через ajax на серверный инструмент, который ищет номер и отправляет город обратно.Это добавляется просто путем добавления его к value ввода.

0 голосов
/ 22 марта 2010

Вам понадобится API геолокации, такой как this

Затем вам нужно будет запросить его с помощью вызовов AJAX и указать часть результата (в данном случае город).) в поле ввода.

Вот пример чего-то подобного, установите Firebug и посмотрите запросы, которые он отправляет.

Sourceкод здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...