форма для проверки первой половины почтового индекса Великобритании по массиву

Мне нужна небольшая форма, чтобы проверить первую половину почтового индекса Великобритании. Я добавил первую половину почтовых индексов в массив.

Форма имеет простое поле ввода и кнопку отправки. Когда пользователь вводит первую половину почтового индекса, например N1, я хочу, чтобы форма проверяла массив, если есть совпадение, я хочу, чтобы div исчез при отображении сообщения.

    <form class="navbar-form navbar-left" role="search" id="searchForm">
<div class="form-group">
<input type="text" name="s" class="form-control covered-area-search-input" placeholder="Enter the first half of your postcode...">
</div>
<button type="submit" class="btn btn-default" value="Search"><i class="fa fa-paper-plane"></i> Submit</button> 
</form>

<div id="result"></div>

jQuery:

var postcodes = ["N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9", "N10", "N11", "N12", "N13", "N14", "N15", "N16", "N17", "N18", "N19", "N20", "N21", "N22", "NW1", "NW2", "NW3", "NW4", "NW5", "NW6", "NW7", "NW8", "NW9", "NW10", "NW11", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", "E11", "E12", "E13", "E14", "E15", "E16", "E17", "E18", "W1", "W2", "W3", "W4", "W5", "W6", "W7", "W8", "W9", "W10", "W11", "W12", "W13", "W14"];

$('#search').submit(function(){
        var postcode = $('#search input').val();  
        if($.inArray(postcode.toUpperCase(), postcodes ) > -1){
            $('#result').html('Yes, we cover your area!');
        }else{
            $('#result').html('Oops, it looks like we do not cover that area yet.');
        }

        return false;
    });

Я пробовал приведенный выше код, но не повезло. Как бы я это сделал? Спасибо заранее.


person Sami    schedule 19.02.2017    source источник


Ответы (1)


Нет формы с id 'search'; это «форма поиска». Можете ли вы обновить свой jQuery, как показано ниже;

$('#searchForm').submit(function(){
    var postcode = $('#searchForm input').val();  
    if($.inArray(postcode.toUpperCase(), postcodes ) > -1){
        $('#result').html('Yes, we cover your area!');
    }else{
        $('#result').html('Oops, it looks like we do not cover that area yet.');
    }

    return false;
});
person Yepo    schedule 19.02.2017
comment
Спасибо, это устранило проблему. :) не уверен, почему я использовал поиск вместо searchForm. - person Sami; 20.02.2017
comment
Любые предложения о том, как я могу преобразовать этот код для частичного совпадения? например. если кто-то набрал E1 4AB, он все равно вернет true, поскольку первая половина почтового индекса находится в массиве. - person MV-123; 29.01.2018