_Dhull Ответов: 3

Как перебирать все текстовые поля на странице с помощью Javascript


Мне нужна помощь с кодом JavaScript.я хочу сделать в основном цикл через все текстовые поля на странице. Я хочу, чтобы пользователь не мог ввести ни один символ или специальный символ. Я хочу разрешить по номерам в них.
У меня есть 100 текстовых полей, поэтому я хочу зациклить их и остановить enter char или spl char.

3 Ответов

Рейтинг:
20

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Следующий код будет циклически проходить через все TextBoxes на странице.

var oInputs = new Array();
oInputs = document.getElementsByTagName( 'input' ) // store collection of all <input/> elements

for ( i = 0; i < oInputs.length; i++ )
{ 
    // loop through and find <input type="text"/>
    if ( oInputs[i].type == 'text' )
    {
        // Now here, oInputs[i] is a TextBox. Do whatever you want to do.
    }
}

Обновление


В Том Числе И Демо.

[Демо] прикрепить событие нажатия клавиши для всех текстовых полей на странице, разрешающих только цифры[^].


_Dhull

Спасибо, Тадит!

я хотел знать, в чем писать

if ( oInputs[i].type == 'text' )
{
// что тут писать. Пожалуйста дайте мне регулярное выражение и полный код
}

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Итак, вы хотите, чтобы разрешались только цифры и ничего больше, верно?

_Dhull

Да Только Цифры

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

А другие символы должны быть удалены?

Я имею в виду, что если одно текстовое поле содержит данные "abcd1234", то после этого кода оно должно содержать "1234", верно?

_Dhull

Да, Верно. На самом деле я хочу, чтобы он не позволял пользователю вводить какой-либо другой символ. Только интергер должен быть разрешен.
У меня есть 100 текстовых полей на странице.

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Да, я сделал демо-версию. Подождите. Я даю ссылку. Оставайтесь с нами. :)

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Теперь смотрите мой обновленный ответ, где я включил демо-версию. :)

_Dhull

Большое спасибо Тадит :)

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Добро пожаловать, братан...;
 <br>
Я написал об этом блог - ПРИКРЕПИТЕ СОБЫТИЕ КО ВСЕМ ТЕКСТОВЫМ ПОЛЯМ НА ВЕБ-СТРАНИЦЕ

Пожалуйста, взгляните. :)

Рейтинг:
2

FluffySaysNo

Петля :

var aInputs = document.getElementsByTagName("input");

for (var i = 0; i < aInputs.length; i += 1)
{
   // check for textbox attribute
   if (/* oType == "text" */)
   {
      aInputs[i][/*onchange*/]  = ValidateChangeFunction;
      aInputs[i][/*onkeydown*/] = ValidateKeyPressFunction;
      aInputs[i][/*Event to validate...*/] = ValidateFunction;
   }
}


Проверка (не уверен, что все, что вам нужно, поэтому я бросил весь объект из моего старого js-файла) :

var KeyCodes = 
   {
      /// <summary> Object designed to handle various key code identifications. </summary>

      IsSpecial   : function(oEvent) { return oEvent.ctrlKey || oEvent.altKey; },
      IsActionKey : function(oEvent) { return KeyCodes.IsEditKey(oEvent) || KeyCodes.IsCtrlCommand(oEvent); },
      IsNumber    : function(oEvent) { return KeyCodes.IsActionKey(oEvent)  || (((oEvent.which >= 48 && oEvent.which <= 57) || (oEvent.which >= 96 && oEvent.which <= 105)) && oEvent.shiftKey == false); },      
      IsDecimal   : function(oEvent) { return KeyCodes.IsNumber(oEvent)  || ((oEvent.which == KeyCodes.PERIOD || oEvent.which == KeyCodes.NUMPAD_DECIMAL) && oEvent.srcElement.value.indexOf(".") == -1); },

      IsEditKey : function(oEvent) 
      { 
         var bIsEdit = false;
         
         if (this.IsSpecial(oEvent))
            return true;

         switch (oEvent.which)
         {
            case this.ENTER :
            case this.NUMPAD_ENTER :
            case this.BACKSPACE :
            case this.TAB :
            case this.PAGE_UP :
            case this.PAGE_DOWN :
            case this.END :
            case this.HOME :
            case this.DELETE :
            case this.INSERT :
            case this.LEFT :
            case this.RIGHT :
            case this.UP :
            case this.DOWN :
               bIsEdit = true; break;
            default :
               bIsEdit = false;
         }

         return bIsEdit;
      },

      IsCtrlCommand : function(oEvent) 
      { 
         var bIsCtrlCommand = false;

         if (oEvent.which == 17) // CTRL
            return true;
         else if (oEvent.ctrlKey)
            switch (oEvent.which)
            {
               case 65: // a
               case 67: // c
               case 70: // f
               case 83: // s
               case 86: // v
               case 88: // x
               case 90: // z
                  bIsCtrlCommand = true; break;
               default : 
                  bIsCtrlCommand = false; 
            }
         
         return bIsCtrlCommand;
      },

      Display           : function(oKeyCode) { return oKeyCode ? String.fromCharCode(oKeyCode) : ""; },
      ESCAPE            : 27,
      ENTER             : 13,
      NUMPAD_ENTER      : 108,
      BACKSPACE         : 8,
      DELETE            : (IsKHTML() ? 127 : 46),
      INSERT            : 45,
      END               : 35,
      HOME              : 36,
      PAGE_DOWN         : 34,
      PAGE_UP           : 33,
      SPACE             : 32,
      TAB               : 9,
      NUMPAD_DECIMAL    : 110,
      PERIOD            : 190,
      COMMA             : 188,
      UP                : 38,
      DOWN              : 40,
      LEFT              : 37,
      RIGHT             : 39,
      NUMPAD_ADD        : 107,
      NUMPAD_DIVIDE     : 111,
      NUMPAD_MULTIPLY   : 106,
      NUMPAD_SUBTRACT   : 109
   }


_Dhull

Спасибо Флаффисайсно :)

Рейтинг:
2

Member 14935410

Сэр,я хочу создать форму,в которой пользователь вводит свое имя,имя отца,название курса, зачетные часы курса и свои оценки
Я хочу когда пользователь нажимает на кнопку отправить данные переходят на другую страницу и делают DMC с рассчитанным GPA


Dave Kreskowiak

Вы опубликовали это как ответ на вопрос 6-летней давности. Не делай этого.

Перейдите в меню "быстрые ответы" выше и нажмите кнопку "Задать вопрос". Опишите вашу проблему. Не пишите "я хочу сделать то-то и то-то" и оставьте все как есть.