Как проверить элемент существует в форме или не использует JS - PullRequest
2 голосов
/ 27 февраля 2011
<code><pre>
<script>
// here i want to check form validation
//if i use for loop txtbox2 is not exist in my form so i am getting Js error


//Don't write individual validation
//check element is exist or not if exist check for validation

//I need know how to check an element is exist or not
</script>

<form
<input type="text" id="txtbox1" name="txtbox1" />*
<input type="text" id="txtbox3" name="txtbox3" />*
<input type="text" id="txtbox4" name="txtbox4" />*
<input type="text" id="txtbox5" name="txtbox5" />*
<input type="text" id="txtbox15" name="txtbox15" />*
<input type="text" id="txtbox28" name="txtbox28" />*

Ответы [ 3 ]

2 голосов
/ 27 февраля 2011

Примените class к ним:

<input type="text" id="txtbox1" name="txtbox1" class="txt" />
<input type="text" id="txtbox3" name="txtbox3" class="txt" />
<input type="text" id="txtbox4" name="txtbox4" class="txt" />
<input type="text" id="txtbox5" name="txtbox5" class="txt" />
<input type="text" id="txtbox15" name="txtbox15" class="txt" />
<input type="text" id="txtbox28" name="txtbox28" class="txt" />

и сделайте так:

function validate(){
  var elms = document.getElementsByTagName('input');

  for (var i = 0; i < elms.length; i++){
    if (elms[i].className === 'txt'){
      if (elms[i].value === ''){
          alert('Make sure to fill in all required fields');
          // now focus it
          elms[i].focus();
          return false;
      }
    }
  }

  return true;
}

И затем вызовите вышеупомянутую функцию, например:

2 голосов
/ 27 февраля 2011

Разместите свой код.

Самый простой способ проверки - использовать плагин jquery validate (зачем писать свой собственный код, если кто-то другой сделал то же самое?).

Пример

<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>

<script type="text/javascript">
  $(document).ready(function() {
    $("#feedbackform").validate();
  });
</script>

<body>
<form id = "feedbackform" method = "POST" action = "">
 <h3><span>Contact Us</span></h3>
 <fieldset>
  <legend>Contact form</legend>

  <label for="id_name">Name *</label>
  <input id="id_name" class="required" type="text" name="name" />

  <label for="id_email">Email</label>
  <input id="id_email" type="email" name="email" class="email"/>

  <label for="id_comments">Message *</label>
  <textarea id="id_comments" class="required" name="comments"></textarea>
  <button type="submit">Send</button>       

 </fieldset>        
</form>

Элементы, которые вы хотите проверить, добавьте class = "required".Я надеюсь, что приведенный пример не требует объяснений

1 голос
/ 27 февраля 2011

Вы можете получить ссылку на элемент и проверить, является ли ссылка нулевой или нет:

for (var i=1; i<=100; i++) {
  var elem = document.getElementById('txtbox' + i);
  if (elem != null) {
    ...
  }
}

Другой подход заключается в просмотре элементов формы, но тогда вам нужен способ доступа к форме:

var elems = document.getElementById('IdOfTheForm').elements;
for (var i=0; i<elems.length; i++) {
  var elem = elems[i];
  if (elem.tagName == 'INPUT' && elem.type == 'text' && elem.id.length > 6 && elemt.id.substr(0,6) == 'txtbox') {
    ...
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...