проверка JavaScript на текстовые поля, созданные динамически - PullRequest
4 голосов
/ 21 июня 2010

В форме текстовое поле создается динамически, нажимая кнопку добавления, так что текстовое поле создается в новой строке. Теперь моя проблема заключается в проверке текстовых полей, которые были созданы динамически, так что он показывает сообщение, если таковые имеются текстовые поля остаются пустыми при отправке формы, нажав кнопку отправить. Пожалуйста, помогите мне.

EDIT

  <html>
   <head>

  <SCRIPT language="javascript">
   function addRow(tableID) {

    var table = document.getElementById(tableID);

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);
    var element1 = document.createElement("input");
    element1.type = "text";
    cell1.appendChild(element1);
 }

   </SCRIPT>
   </head>


   <body>


    <form onSubmit="return validateFormOnSubmit(this)">
   <INPUT type="button" value="Add More Symptom " onClick="addRow('dataTable')" />


    <TABLE id="dataTable" >
      <TR>

        <TD > 
          <INPUT type="text" name="symp[]" /> 
         </TD>
       </TR>
    </TABLE>
   <input type="submit" value="Submit" name="ADD_SUBMIT">
   </form>


  </body>    
  </html>

Выше приведен скрипт для добавления новых текстовых полей в новую строку. Теперь мне требуется, чтобы при нажатии кнопки «Отправить» каждое текстовое поле проверялось, независимо от того, пусто оно или нет на стороне клиента. Введенные значения в текстовом поле не должны исчезнуть, а количество пустых текстовых полей должно быть одинаковым.

1 Ответ

3 голосов
/ 21 июня 2010

в событии отправки формы вам просто нужно собрать все входные текстовые поля, которые вы найдете в форме, и передать их в функцию проверки.

Поместите этот код в раздел <head> вашегоpage

//This function here is only a cross-browser events stopper
stopEvent = function(ffevent)
{
   var current_window = window;

   if(current_window.event) //window.event is IE, ffevent is FF
   {
      //IE
      current_window.event.cancelBubble = true; //this stops event propagation
      current_window.event.returnValue = false; //this prevents default (usually is what we want)
   }
   else
   {
      //Firefox
      ffevent.stopPropagation();
      ffevent.preventDefault();
   };
}

function validateAllInputBoxes(ffevent)
{
   var inputs = document.getElementsByTagName('input');
   for(var i = 0; i < inputs.length; ++i)
      if(inputs[i].type === 'text')
         //@Satish, maybe below you wrote by mistake if(inputs[i].value = '') thus all input elements values get cleared out.
         if(inputs[i].value === '') 
         {
            alert("form could not be sent one input text field is empty");
            stopEvent(ffevent);
         }
}

и в теге <form> введите следующий код:

onsubmit="validateAllInputBoxes(event);"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...