Любой символ, например, ‘a’, должен вводиться только один раз в asp.net текстовое поле

#javascript #jquery #asp.net #events

#javascript #jquery #asp.net #Мероприятия

Вопрос:

У меня есть одно текстовое поле. событие 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
}
  

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

Комментарии:

1. вы имеете в виду, что он не должен иметь возможности вводить повторяющиеся символы или цифры?

2. Да @KunalMukherjee

Ответ №1:

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

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

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

 var index=value.indexOf(String.fromCharCode(charcode));
if(index="-1")
{
 //character not present
}
else
{
 //character already present
}
  

Ответ №2:

Способ, которым я бы это сделал, — создать частотный массив символов, затем проверить, не превышает ли какое-либо значение частоты 1, если да, то верните true, иначе верните false.


Пример:

 function checkPostalCode(event, t) {
  if (!event.currentTarget.value amp;amp; 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)" />