過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。
フォームで未入力の項目に対してアラート&フォーカスされるようにしました。
ここに『住んでいる県』(プルダウン)を追加したいのですがどうしてもうまくいきません。
<script type='text/javascript'>
<!--
function check(frm){
var hissu=Array('name','zip','sex');
var hissu_nm = Array('名前','郵便番号','性別');
var len=hissu.length;
for(i=0; i<len; i++){
var obj=frm.elements[hissu[i]];
if(obj.type=='text' || obj.type=='textarea'){
if(obj.value==''){
alert(hissu_nm[i]+'は必須です');
frm.elements[hissu[i]].focus();
return false;
}
}else{
for(var j=0, chk=0; j<obj.length; j++){
if(obj[j].checked) chk++;
}
if(chk==0){
alert(hissu_nm[i]+'は必須です');
return false;
}
}
}
return true;
}
//-->
</script>
どうかお分かりになる方よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
radioボタンであることを判断するのと
プルダウン(selectタグ)であることの判断を
追加しました。
チェックボックスも判断するのであれば
type=='checkbox'も必要になります。
<script type='text/javascript'>
<!--
function check(frm){
var hissu=Array('name','zip','sex', 'aaa');
var hissu_nm = Array('名前','郵便番号','性別', 'あああ');
var len=hissu.length;
for(i=0; i<len; i++){
var obj=frm.elements[hissu[i]];
if(obj.type=='text' || obj.type=='textarea'){
if(obj.value==''){
alert(hissu_nm[i]+'は必須です');
frm.elements[hissu[i]].focus();
return false;
}
}else if(obj[0].type=='radio'){
for(var j=0, chk=0; j<obj.length; j++){
if(obj[j].checked) chk++;
}
if(chk==0){
alert(hissu_nm[i]+'は必須です');
obj[0].focus();
return false;
}
}else if(obj.tagName=='SELECT') {
if(obj.value == '') {
alert(hissu_nm[i]+'は必須です');
obj.focus();
return false;
}
}
}
return true;
}
//-->
</script>
<form action="" method=post onSubmit="return check(this);">
名前<input name="name" type="text" id="name">
<br>
郵便番号<input name="zip" type="text" id="zip">
<br>
<input name="sex" type="radio" value="radiobutton">
男
<input name="sex" type="radio" value="radiobutton">
女
<br>
あああ
<select name="aaa">
<option value="">--選択してください--</option>
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
<option value="ccc">ccc</option>
</select>
<br>
<input type=submit value="送信">
</form>
ありがとうございます、ありがとうございます!
完璧に作動いたしました!!
何日も悩んでいたのにこんなに早く解決することができたなんて…!なんとお礼を言っていいやらわかりません。
本当にありがとうございました!
No.2
- 回答日時:
No.2さんの
> for(var j=0, chk=0; j<obj.length; j++){
> if(obj[j].checked) chk++;
> }
> if(chk==0){
> alert(hissu_nm[i]+'は必須です');
> return false;
> }
一番上ということでしたら
if(obj[j].selectedIndex == 0) {
alert(hissu_nm[i]+'は必須です');
return false;
}
ですが、optionの場合は警告がちがいますね。
不可視の警告になります。
No.1
- 回答日時:
プルダウンの未選択とはどういったときでしょうか。
プルダウンの場合は常にどれかが選択された状態になっています。
一番上(selectedIndexが0)の場合は未選択ということでしょうか。
それともvalueが空(value="")のときが未選択でしょうか。
> for(var j=0, chk=0; j<obj.length; j++){
> if(obj[j].checked) chk++;
> }
> if(chk==0){
> alert(hissu_nm[i]+'は必須です');
> return false;
> }
一番上ということでしたら
if(obj[j].selectedIndex == 0) {
alert(hissu_nm[i]+'は必須です');
return false;
}
valueが空ということでしたら
if(obj[j].value == '') {
alert(hissu_nm[i]+'は必須です');
return false;
}
この回答への補足
回答どうもありがとうございました!
すみません、<option value="">の場合でした。
字数制限で書けなかったのですが、この後
<form action="" method=post onSubmit="return check(this);">
名前<input name="name" type="text" id="name">
<br>
郵便番号<input name="zip" type="text" id="zip">
<br>
<input name="sex" type="radio" value="radiobutton">
男
<input name="sex" type="radio" value="radiobutton">
女
<br>
<input type=submit value="送信">
</form>
と続き、最初のスクリプトはテキストエリアとラジオボタンに対するチェックでした。
ここで今回お教えいただいたものを追加すると言うことは、
}else{
からどう記入すればよろしいのでしょうか。
もしよろしければお教え願えないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で複数マッチ条件で悩...
-
return trueとreturn falseの用...
-
チェックボックスの有無判定
-
form の onSubmit がコールされ...
-
onsubmitイベントにfalseを返し...
-
JavaScriptde途中で、「exit」...
-
JavaScript ログアウト処理
-
Tabキーでのカーソルの移動...
-
リロードしないようにするには
-
入力された日付の正規表現の仕...
-
ラジオボタンのNullチェック
-
別フレームへの必須入力チェッ...
-
チェックボックスのON/OFFでVal...
-
onchangeイベントを強制的に発...
-
プルダウン 項目が多いので先頭...
-
TextBoxに半角数字以外を入れた...
-
ラジオボタンのチェックが外れ...
-
【jQuery】input nameの文字列...
-
<input>の選択肢をプルダウンメ...
-
【jsp/Java】チェックボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
フォームの入力チェックをする...
-
チェックボックスの有無判定
-
JavaScriptde途中で、「exit」...
-
COBOLの数字チェック
-
TEXTAREAに入力した改行コード...
-
ラジオボタンのNullチェック
-
Visual Studioのデザインでの非...
-
「本当に削除しますか」が正常...
-
ツリービューのチェックボック...
-
半角英数字のみの入力にエラー...
-
ドロップダウンリストボックス...
-
未入力のラジオボタンに、alert...
-
入力された日付の正規表現の仕...
-
JSのみで入力→確認→メールで送...
-
分岐数といえば
-
度胸試しのJavaScript
-
ドラッグ&ドロップ禁止について
-
Tabキーでのカーソルの移動...
おすすめ情報