<SCRIPT LANGUAGE="JavaScript">
<!--
// ヌル及び空欄のチェックを行う
function isFilled(elm) {
if (elm.value == "" ||
elm.value == null)
return false;
else return true;
}
function isReady(form) {
// 名前の空欄のチェックを行う
if (isFilled(form.name) == false) {
alert("お名前を入力して下さい。");
form.name.focus();
return false;
}
return true;
}
//-->
</SCRIPT>
フォームによるアンケートページを作成しているのですが、
textボックスで回答が書かれていなく、空欄の部分があったら
アラートを出し、そのtextボックス部分に戻す、というような
上記プログラムの流れにしています。
textボックスではうまくいくのですが、radioボタンのとき、
うまくいきません(アラートは出るが、フォームに戻らない)。
回避策を教えてください。
No.2ベストアンサー
- 回答日時:
全体のスクリプトが分からないのでとりあえず書いてみました。
多分下の書き方で、大丈夫だと思うのですが・・・
少し長いですが、参考にして下さい。(プログラムが余り上手くないのはご勘弁)
<SCRIPT LANGUAGE="JavaScript">
//テキストフィールド用入力チェック
function isFilled(elm) {
if (elm.value == "" || elm.value == null){
return false;
}else{
return true;
}
}
//ラジオボタン用入力チェック
function isSelected(radioobj){
for ( i = 0 ; i < radioobj.length ; i++ ) {
if ( radioobj[i].checked ) {
return true;
}
}
return false;
}
//送信ボタンが押されたときのチェック
function check(fm){
if(isFilled(fm.namae) == false){
alert("名前入れてね")
return false;
}
if (isFilled(fm.addr) == false) {
alert("アドレス入れてね")
return false;
}
if(isSelected(fm.present) == false){
alert("プレゼントを選んでね")
return false;
}
//好きなだけチェックを入れられます
return true; //最後にtrueを返す
}
</SCRIPT>
フォーム部分です。
<FORM NAME="fm" ACTION="送信先" onSubmit="return check(this)">
名前: <INPUT SIZE="25" TYPE="text" NAME="namae" >
<!-- name="name" から変更しました ↑-->
<BR>
アドレス: <INPUT SIZE="30" TYPE="text" NAME="addr">
<BR>
<INPUT TYPE="radio" NAME="present" value="りんご">りんご
<INPUT TYPE="radio" NAME="present" value="バナナ">バナナ
<BR>
<INPUT TYPE="submit" VALUE="送信">
<BR>
</FORM>
No.3
- 回答日時:
今回は、k_satoさんがお急ぎのようでしたので、いきなりスクリプトを書いてしまいましたが、ちょっとまとめておきます。
1.ラジオボタンの「on」「off」は、
フォームの名前.ラジオボタンの名前[インデックス].checked
の true か false をひとつずつ調べます。
ちなみに、
ラジオボタンの名前.length
は、同じ名前(NAMEプロパティの値が同じ)をもつラジオボタンの数です。
2.一番下のスクリプトが上手くいかなかったのは、
テキストボックスの場合
入力漏れがあれば Submitに false を返す
ラジオボタンの場合
チェックされていれば Submitに true を返す
と、判断が反対になっていたからだと思います。
3.真下のスクリプトを少し工夫すると、抜けがある項目をすべて表示するということもできます。
(今のままだと、名前が抜けていれば、プレゼントが抜けていても「名前をいれてね」としか出ませんから)
ヒントは
var msg= ""
if(名前が抜けてたら){
msg = msg + "名前 "
}
です。(名探偵コナン(アニメ版)の次週のヒントなみですな・・・ほとんど答え?)
では、参考になりましたら幸いです。
この回答への補足
本当にありがとうございます!
さっそく、教えていただいた通りに書き直して試してみます。
うまくプログラムが流れてくれるといいのですが・・・。
のちほど、またご報告します。
望んでいたプログラムの流れが出来ました!
kana-tan様のおかげです・・・。
本当にありがとうございました(^-^)
ちなみにアラートのOKを押した後、カーソルを
自動で空欄部分に戻す方法も付け足しました。
function check(fm){
if(isFilled(fm.namae) == false){
alert("お名前を入力して下さい")
fm.namae.focus();
return false;
}
・
・
だけど、radioボタンだけは無理なんですよね。
でも、大満足です。
本当にありがとうございました。
No.1
- 回答日時:
radioボタンのときの処理をどのように書かれているかがわからないので、新たに書いてみました。
下の書き方ではダメですか?
(フォーマットを整えるために全角空白が入っているので、コピーペーストしても動きません。)
<SCRIPT LANGUAGE="JavaScript">
//チェック用関数(引数はFORMオブジェクト)
function check(fm) {
for ( i = 0 ; i < fm.foo.length ; i++ ) {
if ( fm.foo[i].checked ) {
return true; //どれかチェックされていたらフォームを送る
}
}
alert("NG") //チェックされてないよ
return false;
}
</SCRIPT>
:
:
<FORM ACTION="送信先" onSubmit="return check(this)">
<INPUT TYPE="radio" NAME="foo" value="value1">value1
<INPUT TYPE="radio" NAME="foo" value="value2">value2
<INPUT TYPE="radio" NAME="foo" value="value3">value3
<BR>
<INPUT TYPE="submit" VALUE="決定">
</FORM>
思っていた書き方ではなかったら、お返事下さい。
この回答への補足
ありがとうございます。
radioボタンの処理はわからず、止まっていました。
そして、kana-tan様のプログラムでradioボタンでも
動くようにはなったのですが…。
<!--
// ヌル及び空欄のチェックを行う
function isFilled(elm) {
if (elm.value == "" ||
elm.value == null)
return false;
else return true;
}
function isReady(form) {
// 名前の空欄のチェックを行う
if (isFilled(form.name) == false) {
alert("お名前を入力して下さい。");
form.name.focus();
return false;
}
// ふりがなの空欄のチェックを行う
if (isFilled(form.kana) == false) {
alert("ふりがなを入力して下さい。");
form.kana.focus();
return false;
}
・
・
・
return true;
}
//プレゼントの空欄チェックを行う
function isReady(fm) {
for ( i = 0 ; i < fm.present.length ; i++ ) {
if ( fm.present[i].checked ) {
return true; //
}
}
alert("プレゼントをお選び下さい。") //
return false;
}
//-->
</SCRIPT>
アンケート項目は複数個あり、それぞれのアラートメッセージを
出していました。
上記のように、textボックスのチェックは今までのプログラムで行い、
radioボタンのチェックのみ、kana-tan様のプログラムで組んでみたら、
全て同じアラート文(プレゼントをお選び下さい。)が出てしまいました。
複数textボックスとradioボタンを組み合わせて使用したいのですが、
どのように組んだらよいのか、ご指導お願いいたします。
ちなみに
textボックスは
<INPUT size="25" type="text" name="name">
・
・
radioボタンは
<INPUT TYPE="radio" NAME="present" value="りんご">りんご
<INPUT TYPE="radio" NAME="present" value="バナナ">バナナ
と、普通のhtmlで記述しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で複数マッチ条件で悩...
-
return trueとreturn falseの用...
-
RegularExpressionValidatorの...
-
ツリービューのチェックボック...
-
テキストボックスに数字しか入...
-
slickのレスポンシブ > center...
-
未選択のプルダウンメニューを...
-
TEXTAREAに入力した改行コード...
-
COBOLの数字チェック
-
マウスをブラウザの外に出した...
-
<JavaScript>tableタグを入力不...
-
プルダウン 項目が多いので先頭...
-
hiddenのvalueの値を変えたい
-
【jsp/Java】チェックボックス...
-
Javascriptでのbuttonのname属...
-
onchangeイベントを強制的に発...
-
javascript作成してます。ラジ...
-
POST時に要素を削除してからPOST
-
JavaScriptにて動的に配列を作...
-
ASP.NETでNAME属性を固定にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
フォームの入力チェックをする...
-
チェックボックスの有無判定
-
JavaScriptde途中で、「exit」...
-
COBOLの数字チェック
-
TEXTAREAに入力した改行コード...
-
ラジオボタンのNullチェック
-
Visual Studioのデザインでの非...
-
「本当に削除しますか」が正常...
-
ツリービューのチェックボック...
-
半角英数字のみの入力にエラー...
-
ドロップダウンリストボックス...
-
未入力のラジオボタンに、alert...
-
入力された日付の正規表現の仕...
-
JSのみで入力→確認→メールで送...
-
分岐数といえば
-
度胸試しのJavaScript
-
ドラッグ&ドロップ禁止について
-
Tabキーでのカーソルの移動...
おすすめ情報