Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с удалением ненужных символов (https://javascript.ru/forum/dom-window/62133-pomogite-s-udaleniem-nenuzhnykh-simvolov.html)

sergofedor06 25.03.2016 23:38

Помогите с удалением ненужных символов
 
Есть вот такой пхп код и форма поиска
в которую человек вводит искомое слово

после чего нажимает поиск

и запрос из формы вида
domen.com/index.php?num=44444444444
отображается в браузере!

у меня такая задача мне нужен java скрипт
который будет удалять все буквы из поисковой формы и оставлять в
domen.com/index.php?num=44444444444
только цифры, короче говоря нужно чтобы скрипт пропускал только цифры и некоторые символы, вот они
1234567890()-
а все остальные буквы и символы которые будут в поисковом запросе нужно чтобы удалялись

если поисковый запрос будет вида
fdfg56346634dfg456565
то после обработки скрипта должно остатся только
56346634456565


<?php
$num = $_GET['num']; // поиск номера!
?>

<form method="get" action="index.php">
<input name="num" type="search"></input>
<button type="submit" class="search-button">Искать</button>
</form>



помогите составить скрипт удаления ненужных символов!
также подойдет вариант когда человек попросту не сможет вписать в поисковую форму символы которые не разрешены

т.е сможет вписать в поисковое поле
только
1234567890()-
любую комбинацию из этих символов, остальные не сможет впечатать в поисковое поле... как-то так, спасибо!

Decode 26.03.2016 01:23

Можешь использовать атрибут pattern.

<form method="get" action="index.php">
  <input name="num" type="search" pattern="[\d()-]">
  <button type="submit" class="search-button">Искать</button>
</form>

<script>
  var inpElem = document.forms[0].elements[0];

  inpElem.oninput = function() {
    this.value = this.value.replace(/[^\d()-]/g, '');
  };
</script>

sergofedor06 26.03.2016 23:20

Decode
Спасибо вам, что помогли.

sergofedor06 27.03.2016 10:58

Цитата:

Сообщение от Decode (Сообщение 412062)
Можешь использовать атрибут pattern.

<form method="get" action="index.php">
  <input name="num" type="search" pattern="[\d()-]">
  <button type="submit" class="search-button">Искать</button>
</form>

<script>
  var inpElem = document.forms[0].elements[0];

  inpElem.oninput = function() {
    this.value = this.value.replace(/[^\d()-]/g, '');
  };
</script>




скажите в чем проблема, вставил ваш скрипт он действительно
не дает возможность ввести другие символы кроме

1234567890()-

но когда я нажимаю на кнопку искать!
то вылазит сообщение (Введите данные в указанном формате.)
но ведь я данные ввел в указанном формате в поисковое поле

а вылазит это сообщение, почему что не так?

sergofedor06 27.03.2016 12:17

Подскажите пожалуйста вот такое
у меня вот такой код ява код

function openprompt(){	
var html='<form method="get" action="index.php"><input name="num" type="search" class="search-input"></input><button type="submit" class="search-button">Искать</button></form>';
prompt.show({info:html});
}




внутри переменной
var html

есть поисковая форма, так как мне прикрутить вашу проверку
которая будет отсекать ненужные символы в поисковом поле

<script>
  var inpElem = document.forms[0].elements[0];

  inpElem.oninput = function() {
    this.value = this.value.replace(/[^\d()-]/g, '');
  };
</script>



как мне ваш скрипт интегрировать в мой?

Decode 28.03.2016 20:11

sergofedor06, вот так попробуй:
document.oninput = function(e) {
	if ( e.target.classList.contains('search-input') ) {
		e.target.value = e.target.value.replace(/[^\d()-]/g, '');
	}
};

sergofedor06 29.03.2016 10:31

спасибо уже сам решил!


Часовой пояс GMT +3, время: 02:38.