これを行うには、ユーザーが2つのボタンのいずれかをクリックできるようにする選択肢があります.JQueryを使用して、選択したオプションに基づいて適切なオプションを表示/非表示にします。つまり、いつでも1つのオプションしか表示されません。これは、これらの利点があります。
- ユーザーが同じように簡単(彼らは二回の作業を行うと、システムがそれを拒否した場合、それは可能性が低いユーザーがイライラ/混乱ウィルの)両方のオプションを記入することはできません。
- ユーザーがJSを持っていない場合、ブラウザは両方のオプションを通知します(私の例を参照)。
- Jqueryは素敵でシンプルで、IE /非主流のブラウザでは簡単に破られることはありません。
は、ここで私は(テストされていないが、動作するはずです)、それを行うだろう方法です。一般的に
# view
<button type="button" id="choose_image">Upload an image</button>
<button type="button" id="choose_radio">Choose from list</button>
<div id="noJS">
Please only complete ONE of these two options.
</div>
<div id="image">
...
</div>
<div id="radio">
...
</div>
# Jquery
$(document).onload(function(){
$('#noJS').hide();
$('#radio').hide();
})
$('#choose_image').click(function(){
$('#radio').hide(); // or slideToggle() or fadeOut() etc.
$('#image').show();
});
$('#choose_radio').click(function(){
$('#radio').show();
$('#image').hide();
});
、いくつかの考慮事項がここにあなたが選ぶどんなアプローチであります
- 新しい/注意を払って/いない急いかもしれないユーザーのための明確なシステムは何ですか?
- 特に、後で拒否するようにユーザーを働かせることによって、欲求不満の原因となる可能性は低いですか? (溶液:自然にあなたが望む結果を負担することを設計。)
- ターゲットオーディエンスのほとんどの人々に最もアクセス可能ですか?
あなたは、クライアント側の検証に頼るべきではありません。サーバー側の検証またはクライアント側+サーバー側を使用できますが、クライアント側だけでは使用できません。 –
+1クライアント側の検証だけで完全に合意しました。サーバ側(少なくとも)を適切に検証すると仮定した場合、訪問者からの良い結果を奨励する方法については、answerを参照してください。 – sscirrus
私は既にサーバー側の検証を行っています。心配してくれてありがとう。 – wiseman7687