Как отключить спецсимволы при нажатии на кнопку «Ввод», не предотвращая Dеfault ()? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть поле поиска:

 <div class="search-fill">
 <input type="search" name="search" id="search" class="autocomplete" autocomplete="off" placeholder="Search..." value="@ViewBag.Terms"/>
 </div>

и связанная с ним кнопка:

<div class="search-submit">
<button id="searchbutton" class="search-button"><i class="fa fa-search" onclick="removeSpecialChar()"></i></button>

Этот код не помогает, когда пользователь нажимает Введите ключ.Я знаю, что мы можем отключить Ввод с помощью protectDefault (), но есть ли другой способ сделать это, так как я хочу, чтобы пользователь мог выполнять поиск даже при нажатии Enter?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018
document.querySelector("#search").addEventListener("input", ({ target }) => {
    const regEx = /([.*+?^$|(){}\[\]])/mg; // example, compose regexp you need
    target.value = target.value.replace(regEx, "");
})
0 голосов
/ 18 декабря 2018

Проверьте это

$(function () {
    $('[type="search"]').bind('paste input', removeSpecialChars);
})

function removeSpecialChars(e) {
    var self = $(this);
    setTimeout(function () {
        var initVal = self.val(),
            outputVal = initVal.replace(/[^A-Z0-9]+/i, '');
        if (initVal != outputVal) self.val(outputVal);
    });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="search" name="search" id="search" class="autocomplete" autocomplete="off" placeholder="Search..." />
...