お世話になります。
不適切なデータを送らないためのスクリプトを書いています。
<form onsubmit="return func1(this);">
(省略)
</form>
func1 (frm1){
if (frm1.elements[0]~~~) {
alert(msg0);
return false;
}
(省略)
if (frm1.elements[99]~~~) {
alert(msg99);
return false;
}
return true;
}
このように書く代わりに
func1 (frm1){
if (frm1.elements[0]~~~) {
exodus(msg0);
}
(省略)
if (frm1.elements[99]~~~) {
exodus(msg99);
}
return true;
}
function exodus(msg) {
alert(msg);
xxxx false;
}
とかこんな風に書けたらいいなと思うのですが
この「xxxx」に相当するような機能はJavaScriptにあるのでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
function func1 (frm1){
if (frm1.elements[0]~~~) {
exodus(msg0);
}
return true;
}
function exodus(msg){
;
}
このときにexodus(msg0)を実行するだけでfunc1も終了する方法はあるか?
という意味に取れましたが、どうなんでしょうか。
JavaScriptではそう言う機能(Cのexit()に相当する機能)はありません。
面倒ですが、1つ1つreturn falseで関数を抜けさせる必要があります。
if (frm1.elements[0]~~~) {
exodus(msg0);
return false;
}
(略)
if (frm1.elements[99]~~~) {
exodus(msg99);
return false;
}
ですが、他の言語同様にif(1から99){}をまとめて、forループなどでかけますので、(略、ANo.1やANo.2に続きます)
はい、そういう意味です。
JavaScriptでは不可能なんですね。
かなり探したけれど見つからないわけだ…。
ありがとうございました。
No.2
- 回答日時:
★for 文を使ったら。
・『msg0』~『msg99』を『msg[100]』の配列に定義変更します。
・『for』文で 0 ~ 99 までをチェックして行えばいいと思います。
・以上。おわり。
function func1( frm1 ){
for ( var i=0 ; i < 100 ; i++ ){
if (frm1.elements[i]~~~){
exodus( msg[i] );
return( false );
}
}
return( true );
}
function exodus( msg ){
alert( msg );
}
すみません。
1番の方のところでも書きましたが、
類似した処理をループでコンパクトに書きたいわけではないのです。
つたない説明で申し訳ありませんでした。
No.1
- 回答日時:
こんばんは。
…なるほど、
---------------------------------
if (frm1.elements[0]~~~) {
alert(msg0);
return false;
}
---------------------------------
の中の行が、1行でも短くならないか?
というご質問ですね。
それなら、
---------------------------------
for(i=0; i<100; i++) {
if (frm1.elements[i]~~~) {
alert(msg[i]);
return false;
}
}
---------------------------------
という格好にして、メッセージを
msg[n]
という配列のかたちで持たせれば、
行は ずっと少なくなります YO !
すみません。
関数から抜けることを主眼におきたかったので簡略化しましたが、
if (frm1.elements[i]~~~) {
の
~~~
も結構パターンがあるのです。
それならそれで真偽値審査部分も配列にすればよいのですけど…。
ともあれ主眼は「1行でも短くならないか?」ということとは
微妙にずれたところにあります。
でもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
ドラッグ&ドロップ禁止について
-
数式から不要なカッコを取り除...
-
未入力のラジオボタンに、alert...
-
Visual Studioのデザインでの非...
-
onSubmit=の後ろは複数可能でし...
-
コピペを禁止するtextarea
-
半角英数字のみの入力にエラー...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
JavaScriptde途中で、「exit」...
-
ピリオド区切りで 4桁.2桁.2桁 ...
-
リロードしないようにするには
-
値をチェックしたい
-
プルダウン選択を変更すると、...
-
チェックボックス付きのテーブ...
-
value内に変数を入れたい
-
<JavaScript>tableタグを入力不...
-
【javascript・PHP】プルダウン...
-
JSPとJavaScriptの連携について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
コピペを禁止するtextarea
-
JavaScriptde途中で、「exit」...
-
未入力のラジオボタンに、alert...
-
ラジオボタンのNullチェック
-
テキストボックスに数字しか入...
-
数式から不要なカッコを取り除...
-
半角英数字のみの入力にエラー...
-
フォームの入力チェックをする...
-
変数の値によってsubmit後の動...
-
ツリービューのチェックボック...
-
ドロップダウンリストボックス...
-
ドラッグ&ドロップ禁止について
-
テキストボックスをEnterキーで...
-
入力された日付の正規表現の仕...
-
Visual Studioのデザインでの非...
-
正規表現で複数マッチ条件で悩...
-
度胸試しのJavaScript
おすすめ情報