Любой персонаж, например'a' должен вводиться только один раз в текстовом поле asp.net - PullRequest
0 голосов
/ 06 марта 2019

У меня есть одно текстовое поле. Событие onkeypress вызывает функцию checkPostalCode.

<asp:TextBox ID="txtPostalCode" runat="server" CssClass="textbox-width form-control" onkeypress="return checkPostalCode(event,this)" TabIndex="14" MaxLength="10"></asp:TextBox>

JavaScript:

function checkPostalCode(e, t) {
  if (window.event) {
    var charCode = window.event.keyCode;
  } else if (e) {
    var charCode = e.which;
  }
  //Some other Funtionalities
}

Есть ли способ, которым мы можем ввести любой символ или число только один раз в текстовое поле?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Я бы сделал так, чтобы построить массив частот из символов, а затем проверить, является ли какое-либо значение частоты больше 1, если да, тогда вернуть true, иначе вернуть false.


Пример:

function checkPostalCode(event, t) {
  if (!event.currentTarget.value && event.keyCode !== 13) {
    alert(`Please enter something!`);
    return;
  } else {
    const input = event.currentTarget.value;

    const inputArray = [...input];

    // Construct frequency array of the input
    const frequencyinputArray = inputArray.reduce((prev, curr) => {
      prev[curr] = prev[curr] ? prev[curr] + 1 : 1;
      return prev;
    }, {});

    // Check in the frequency array if any count is greater than 1
    const doesContainRepeatedCharacters = Object.values(frequencyinputArray).some(x => x > 1);
    console.log(doesContainRepeatedCharacters);
    return doesContainRepeatedCharacters;
  }
}
<input id="txtPostalCode" class="textbox-width form-control" onkeyup="checkPostalCode(event,this)" />
0 голосов
/ 06 марта 2019

Попробуйте получить существующее значение внутри текстового поля, используя

var value=document.getElementById("#txtPostalCode");

проверка индекса нового символа

var index=value.indexOf(String.fromCharCode(charcode));
if(index="-1")
{
 //character not present
}
else
{
 //character already present
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...