Как проверить, установлен ли обязательный атрибут в поле

У меня есть простая форма, в которой есть несколько обязательных полей.

<form name="form" method="post">
<pre>
<label>     Name: </label><input type="text" name="name" required>
<label>  Address: </label><input type="text" name="add" required>
<label>Telephone: </label><input type="text" name="tel">
<input type="submit" value="Submit Form"> 
</pre>
</form>

Я знаю, что вы можете установить требуемый атрибут, используя document.forms['form']['name'].required = false. Но есть ли способ, с помощью которого вы можете просто проверить, установлен ли требуемый атрибут или нет? Я пытался использовать getattribute(), но он просто возвращает пустое значение. Я также пытался использовать приведенный ниже код, но он всегда выполняет оператор, даже если обязательный атрибут не установлен (например, в поле телефона).

 if( document.forms['form']['name'].required = true)
     label.innerHTML += " (required)"

Кто-нибудь знает, как я могу это сделать?

Обновление: установка оператора if на == вместо = и использование hasAttribute работают, спасибо.


person Harry12345    schedule 19.10.2013    source источник
comment
Сделайте это == в if(). Или на самом деле сделайте что-то вроде alert("value: " + document.forms['form']['name'].required); и проверьте это значение.   -  person sjngm    schedule 19.10.2013
comment
Возможно, я не понимаю, но если getAttribute возвращает либо null, либо "", это означает, что атрибут не существует для этого элемента, что вы и хотите знать.   -  person ultranaut    schedule 19.10.2013
comment
Вам нужно сделать это чеком, а не заданием. Это должно работать, т.е. проверка на if(document.forms['form']['name'].required) . Здесь вы назначаете вместо тестирования из-за =, который всегда будет возвращать true.   -  person PSL    schedule 19.10.2013


Ответы (1)


Попробуй это :

var elem = document.getElementsByTagName('input')[0];

if(elem.hasAttribute('required')){
//do your stuff
}
person super    schedule 19.10.2013