HTML - формы, два текстовых ввода.обязательный атрибутКак, пользователь должен ввести строку в любое из двух полей для отправки? - PullRequest
3 голосов
/ 04 января 2012

У меня проблемы с попыткой найти решение для этого, не прибегая к выражению php или javascript. Это так, как идея кажется настолько простой, что я почти уверен, что должен быть способ сделать это без использования двух.

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

Итак, у меня есть 3 поля: «Телефон», «Мобильный», «Факс»,

.

Что я хочу сделать, так это сделать так, чтобы пользователь заполнил форму телефона или мобильного телефона, чтобы заполнить форму.

Но, я думаю, у меня такой вопрос ... Можно ли каким-то образом использовать атрибут required для достижения этого эффекта?

Вот HTML-код для этих полей:

<li>
<label for="phone">Phone:</label>
<input type="tel" name="phone" id="phone" value="'.htmlout($phone).'" required aria-required="true" placeholder="0317021101"title="Please enter your home or work number here. You must enter either a phone, or mobile number." maxlength="20"/>
</li>
<li>
<label for="mobile">Mobile:</label>
<input type="tel" name="mobile" id="mobile" value="'.htmlout($mobile).'" placeholder="0827564829" title="Please enter your mobile number here. You must enter either a mobile, or phone number." maxlength="20"/>
</li>

В помощь, вклад или совет по этому поводу будет принята с благодарностью, спасибо!

Ответы [ 4 ]

3 голосов
/ 04 января 2012

Не проще ли иметь два поля телефонных номеров, первое из которых обязательно?Похоже, в объяснениях говорится, что любое из номеров может быть номером мобильного телефона или чем-то еще, так почему бы не сделать их симметричными по структуре?

Первое может быть помечено «Основной телефон (обязательно)», а другое -Дополнительный телефон (необязательно) ».Они довольно длинные для ярлыков, но, по моему опыту, слишком короткие ярлыки (такие как «Телефон» и «Альтернативный телефон») приводят к тому, что некоторые пользователи повторно вводят первый номер ...

2 голосов
/ 04 января 2012

К сожалению, required работает только с отдельными полями, а не с группами полей (даже если они имеют одинаковые name), поэтому сделать это невозможно только с помощью проверки HTML5.

Демо: http://jsfiddle.net/ka7kC/

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

Если вы используете jQuery, я предлагаю проверенный плагин проверки на стороне клиента:

1 голос
/ 04 января 2012

Если это действительно необходимо, только серверный сценарий проверки может на самом деле обеспечить его выполнение.

Javascript - действительно единственная другая опция, которая выполняет сложную (т. Е. Нечто большее, чем сопоставление с образцом) проверку на стороне клиента.

0 голосов
/ 04 января 2012

Атрибут «required» не работает в большинстве версий IE и некоторых версиях Safari, поэтому вам нужно проверить свои данные другим способом.

...