プロが教えるわが家の防犯対策術!

こんばんは。

会員登録用のフォームを作成しているのですが、必須項目が入力、もしくは選択されていない場合には特定のボタン(次へボタンなど)を無効化するようにできたらな、と思っているのですが、そのような方法をご存知の方はいらっしゃいませんでしょうか。テキストボックス、チェックボックス、ラジオボックス、コンボボックスなど、色々な入力部品が混在しています。

テキストボックスでは入力、チェックボックス・ラジオボックス・コンボボックスでは特定の項目(name属性で指定するなど)が指定された場合以外を無効化したいと思っています。

こんな内容で理解できるかは不明ですが、ご存知の方はぜひご伝授ください。

A 回答 (4件)

条件を満たすまでボタンを無効化、というのとはちょっと違いますが、


Javascriptの事がわからなくてフォームのチェックをしたければ
validateするライブラリでも使ってみては?
http://phpspot.org/blog/archives/2007/03/javascr …
    • good
    • 0
この回答へのお礼

こんにちは。

お返事ありがとうございます。

あ、これ、見たことあります!これを使うのが一番よさそうですね。

そもそも、市販のWebページ作成ツールを使用しないとWebサイトを構築できない程度のスキルですので、ここの方たちに頼らずもう少し勉強して自力でがんばることにします。

他の方々も、どうもありがとうございました。

お礼日時:2009/03/27 15:52

>指定された場合以外を無効化



これは本質的にはユーザビリティをあげる手段なので、それを必須にして
しまうと袋小路に陥る場合もあります。
たとえばjavascriptが使えない環境、使えないようにしている環境など
想定しているのであれば、相応の仕組みを用意する必要があります。

(つまり最低限の仕組みで処理をいれておき、それを通過した場合も
サーバー側で再度チェックをいれてだめな場合はその問題のある個所を
指摘するような仕組みが必要ということ)

この回答への補足

こんにちは。

お返事ありがとうございます。

Javascriptが使える環境のみを想定しているので、それをサポートしていない、もしくは無効化している場合には利用可能な状態にしておくよう情報を表示するようにしようと考えています。

補足日時:2009/03/27 15:47
    • good
    • 0

それよりボタンにonclickイベントを設定して必須項目が入力または


選択されていなかったら次へ進まない(エラーを出す)としたほうが
簡単な気が...。
    • good
    • 1

<html>


Q1.<input type="text" id="q1" onKeyup="chk()"><br>
Q2.<input type="checkbox" id="q2" onClick="chk()">abc<br>
Q3.<input type="radio" name="a" value="man" onClick="$('q3').value=this.value;chk()">男
<input type="radio" name="a" value="woman" onClick="$('q3').value=this.value;chk()">女
<input type="hidden" value="" id="q3"><br>
Q4.<select name="color" onChange="$('q4').value=this.value;chk()">
<option value="白">ホワイト</option>
<option value="赤">レッド</option>
<option value="黄">イエロー</option>
<option value="青">ブルー</option>
<option value="緑">グリーン</option>
</select>
<input type="hidden" value="" id="q4"><br>

<input type="submit" value="Submit" id="ss" disabled>
<script>
function chk(){
var f=false;
if(document.getElementById('q1').value !=''
&& document.getElementById('q2').checked
&& document.getElementById('q3').value=='man'
&& document.getElementById('q4').value=='緑'
) f=true;
document.getElementById('ss').disabled=f?false:true;
}
function $(o){ return document.getElementById(o); }

</script>
</body>
</html>
条件は、未入力以外で、チェックオンで男で緑。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!