2013-12-04 1 views
1

Я добавил требуемую опцию в форму, но, похоже, она не работает, кроме типа электронной почты.Почему требуемый параметр не работает в текстовом поле?

<input type="text" value="Your name" name="name" onblur="if (this.value == '') {this.value = 'Your name';}" onfocus="if (this.value == 'Your name') {this.value = '';}" required> 
<input type="email" value="E-mail" name="email" onblur="if (this.value == '') {this.value = 'E-mail';}" onfocus="if (this.value == 'E-mail') {this.value = '';}" required> 
<input type="tel" value="Phone number" name="phone" onblur="if (this.value == '') {this.value = 'Phone number';}" onfocus="if (this.value == 'Phone number') {this.value = '';}" required> 
<input type="text" value="Your address" name="address" onblur="if (this.value == '') {this.value = 'Your address';}" onfocus="if (this.value == 'Your address') {this.value = '';}" required>     
<input type="text" value="Coupon code" name="coupon" onblur="if (this.value == '') {this.value = 'Coupon code';}" onfocus="if (this.value == 'Coupon code') {this.value = '';}" required> 

ответ

1

Потому что вы уже дали им Value атрибутов. Вместо этого попробуйте использовать placeholder.

Demo

<input type="text" placeholder="Your name" name="name" onblur="if (this.value == '') {this.value = 'Your name';}" onfocus="if (this.value == 'Your name') {this.value = '';}" required> 
<input type="email" placeholder="E-mail" name="email" onblur="if (this.value == '') {this.value = 'E-mail';}" onfocus="if (this.value == 'E-mail') {this.value = '';}" required> 
<input type="tel" placeholder="Phone number" name="phone" onblur="if (this.value == '') {this.value = 'Phone number';}" onfocus="if (this.value == 'Phone number') {this.value = '';}" required> 
<input type="text" placeholder="Your address" name="address" onblur="if (this.value == '') {this.value = 'Your address';}" onfocus="if (this.value == 'Your address') {this.value = '';}" required>     
<input type="text" placeholder="Coupon code" name="coupon" onblur="if (this.value == '') {this.value = 'Coupon code';}" onfocus="if (this.value == 'Coupon code') {this.value = '';}" required> 

Edit: Это будет по-прежнему не работает прекрасно, потому что вы устанавливаете значение в onblur. Я обновил скрипку, удалив события onblur и onfocus. Эта функциональность предоставляется по умолчанию заполнителем.

<input type="text" placeholder="Your name" name="name" required> 
<input type="email" placeholder="E-mail" name="email" required> 
<input type="tel" placeholder="Phone number" name="phone" required> 
<input type="text" placeholder="Your address" name="address" required>     
<input type="text" placeholder="Coupon code" name="coupon" required> 
+0

Хорошо, спасибо. – Swagata

0

onblur вы еще потому устанавливаете значение входов вашего javascript кода.

Адрес электронной почты работает, потому что настройка onblur не является действительным адресом электронной почты.

+0

Значит, 'onblur' и' required' не могут работать вместе? – Swagata

+0

'onblur' не имеет отношения к обязательному. Просто вы устанавливаете значение ввода кодом, который вы подключили, с событием onblur. И, когда ввод имеет значение, он получил то, что требуется :). Кстати, вы можете использовать вместо этого placeholder. –

+0

Хорошо, большое спасибо. Работает нормально. (: – Swagata