2012-01-04 7 views
3

php文やjavascriptに頼らずに解決策を見つけようとしています。これはアイデアがとてもシンプルなように見えるので、私は2つのものを使用せずにこれを行う方法がなければならないと確信しています。HTML - フォーム、2つのテキスト入力。必須属性。どのようにするには、2つのフィールドのいずれかに文字列を入力して送信する必要がありますか?

私は登録用紙を持っており、このフォームの特定のフィールドが必要です。しかし、私は少なくとも1つの電話番号を入力しなければならないので、私はいくつかのクワンドリーに来ているので、注文に問題があった場合に連絡を取ることができます。

だから私は、ユーザーがフォームを完了するために電話、または携帯電話番号のいずれかを入力しなければなりませんので、私は何をしたいのか、それ作るれる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> 

をいただければ幸いです、ありがとうございました!

答えて

3

2つの電話番号フィールドを持つ方が簡単ではないでしょうか?その最初のフィールドは必須ですか?説明は、数字のいずれかが携帯電話の番号か他の何かになる可能性があるので、なぜそれらを構造的に対称にしないのですか?

最初の電話機には、「プライマリ電話機(必須)」と「セカンダリ電話機(オプション)」というラベルを付けることができます。これらはラベルではかなり長いですが、私の経験では短いラベル(「電話」や「代替電話」など)があると、一部のユーザーが最初の番号を再入力する傾向があります...

+1

"(必須)"と "(オプション)"のテキストをラベルから削除し、単に既存の "必須"インジケータを使用することができます。結局のところ、必須ではないフィールドはオプションでなければならないのでしょうか? – cdeszaq

+0

あなたのご意見ありがとうございました。私は実際にこのアイデアから始まったが、私はそれについてそれほど考えなかった。私は勝者がいると信じています! –

+0

@cdeszaqは理にかなっています! –

2

残念ながら、requiredはフィールドのグループではなく、個々のフィールドでのみ動作します(同じnameを持っていても)。したがって、HTML5の検証だけではこれを行う方法はありません。

デモ:http://jsfiddle.net/ka7kC/

あなたははあなたにも、サーバー側で検証する必要があり、とにかくクライアント側の検証にを頼るべきではありません。さらに、すべてのブラウザがHTML5検証をサポートするとは限らない。

+0

ありがとうございます。それを見てみましょう...私は技術が巨大な跳躍を取ることを望む:) –

+1

物事は良いと私は言うだろう。私たちはここ数年、長い道のりを歩んできました。検証プラグインは、HTML5検証と比べて無限に強力で柔軟性があります。マークアップに書かれた検証ルールは、常に私にとってはちょっと怪しいようでしたが、私は個人的にはそれを別々に書くことを好みます。 –

+0

はい、あなたは良い点があります。そして、プラグインが私にもうまく合っていると確信していますが、問題はhtmlバリデーションがとても簡単に見えるということです:) –

1

、唯一のサーバー側の検証:

あなたはjQueryのを使用している場合、私は、クライアント側のための真の実証済みの検証プラグインを示唆しますスクリプトは実際にそれを強制することができます。

Javascriptは、実際には複雑な(つまり、パターンマッチング以外の何か)妥当性検証クライアント側を行う唯一の他のオプションです。

0

IEのほとんどのバージョンとSafariのいくつかのバージョンでは、「必須」属性が機能しないため、入力を別の方法で検証する必要があります。

+0

これは私がWAI-ARIAに必要な属性をも含んでいる理由です。ie8 +でサポートされていますか? –

関連する問題