заблокировать определенные слова в форме поиска - PullRequest
1 голос
/ 11 апреля 2019

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

Попробуйте что-то, что при поиске выдает ошибку 404, но это не работает для меня, потому что я не хочу, чтобы поиск был выполнен

<div class="header-search">
    <form method="get" id="searchform" action="/?s=">
        <input class="input-group-field" value="Search..." name="s" id="s" onfocus="if (this.value == 'Search...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search...';}" type="text">

        <input class="fa fa-search" type="submit" id="searchsubmit" value="">
    </form>
</div>

Я хочу заблокировать такие слова, как xxx, xnxx, porn Я хочу, чтобы при поиске этих вещей форма не выполняла поиск, оставляя какие-либо предупреждения, предупреждающие, что этот поиск не может быть найден

1 Ответ

2 голосов
/ 11 апреля 2019

Что-то вроде следующего jQuery / Javascript должно работать очень хорошо.

jQuery(document).ready(function( $ ) {
    var searchBox = $("#searchform #s").val(); //Get value of search field
    var searchButton = $("#searchform #searchsubmit"); //Get search button element

    var search_string_check = function(searchBox,searchButton) {

        var blockedWords = "xxx,porn,sex"; //define blocked words here
        blockedWords = blockedWords.split(','); //turn string into array

        if(blockedWords.includes(searchBox)){ //check if the searched value is in the blocked words list
            searchButton.attr("disabled", ""); //if yes disable the button
            alert("Your search contains a blocked word: " + searchBox + ". To continue your search please remove the blocked word."); //alert saying they cannot search for their entered blocked word
        } else {
            searchButton.removeAttr("disabled"); //if no remove disabled button
        }
    }

    search_string_check(searchBox,searchButton); //fire the function

    $('#searchform #s').change(function() { //on change of the search box value do something
        searchBox = $("#searchform #s").val(); //Get value of search field
      search_string_check(searchBox,searchButton); //fire the function
    });
});

Вы можете предпочесть делать это при нажатии клавиши вверх или вниз вместо простого изменения значения, это зависит от вас,если это так, замените последнюю часть кода на:

$('#searchform #s').keyup(function() { //on change of the search box value do something
    search_string_check(searchBox,searchButton); //fire the function
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...