- ベストアンサー
フォームメールの入力チェック方法についての質問
- HTML側にJavaScriptで入力チェックを行わず、cgi側で入力チェックをする方法についての質問です。
- name属性の値の前にアンダーバーを付けることで、メールアドレスの入力チェックを実現することができます。
- ただし、select要素の場合はアンダーバーを付けても入力チェックがかからないため、別の方法を探しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<option value> という書き方ではブラウザによって解釈が微妙に違うし、特にIEの場合はoptionの表示内容の全角スペースがvalueの値として採用されるようです。 (valueが省略された場合は表示内容を値として送信する仕様です。) つまり現状では value=" "(←全角スペース)と書いたような状態になっています。 値として空である事を示すには value="" とすれば大丈夫だと思います。 radioボタンの場合はまた少し違います。 最初からどれか一つにチェックが入った状態、 checked のあるinput が存在しないとCGIを改造しない限り未チェックのチェックは出来ないと思います。 どうしても最初はどこにもチェックが入っていない状態にしたければ次のようにするとよいかも 例) <input type="radio" value="" name="_sex" checked style="display:none;"> ↑値が空、checked 指定のinputを非表示で配置 男<input type="radio" value="female" name="_sex"> 女<input type="radio" value="male" name="_sex">
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
blankとは具体的にどういう状態でしょうか? とりあえず一度formのメソッドをgetにしてみると、 <form ~ method="post">→<form ~ method="get"> 送信した後にブラウザのURL欄でどうのように内容が渡されているか確認できると思うので 希望通りの形式で渡っているか確認してみては? http://~ mailform.cgi?_time=&_email みたいになっていればたぶんOK(CGI側の問題?)、 そうでなくて _time=?? と、何か値が渡っていればhtmlの書き方に問題があるのだと思います。
補足
blank とは、HTMLのformのタグに 第1希望時刻 <select name="_time"> <option value> </option> <option value="11:00~">11:00~</option> <option value="12:00~">12:00~</option> <option value="13:00~">13:00~</option> </select> として、▼をクリックする前は枠内が空白になっているという意味です。 いろいろ試してみましたが、 <input type="text" name="_name"size="35" tabindex="1"> <input type="text" name="_email" size="60" tabindex="6"> <textarea name="_comment" cols="80" rows="6" wrap=soft tabindex="7"></textarea> などは、入力チェックができますが、やはり"select"と同じようにvalue のある"radio"ボタンなどはダメでした。 ご指摘のように、"get"でも送信してブラウザのURL欄で見たのですが、入力した文字以外は文字化けしていました。 cgiは設置できる程度でプログラムはわかりません。 ちなみに使用しているのは、フリーで配布されている postmail.cgi です。
お礼
ありがとうございました!! 早速試しましたら、見事解決しました。 感謝致します。 やはりHTML側の問題だったのですね。 知識不足でした 勉強になりました。 本当にありがとうございました。