質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

854閲覧

JQuery:イヴェント発火をある状況下のみ作用させる一般的な記述方法を教えてください。

saya24

総合スコア221

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2019/01/26 13:37

JQueryで かつて下記のような記述をしたことがあります。

JQuery

1//入力できないように 2$("[name=findate]").keydown(function(event){ 3 return false; 4 }); 5 6//コピーできないように 7$("[name=findate]").css('user-select', 'none').on('copy paste contextmenu', false);

で、今回は あるセレクタの対象
例えば$("#cd")のval()が空白・NULLの場合は...という条件付きで これらを作用させたいと考えています。
イベント発火時に視点をおいた作業ばかりしてきたので、今回のように画面上の項目がある条件の際のみ働かせたい、という達成方法が経験浅く分かりません。

上段のケースでは まだ内部にif文を記述できると思うのですが...
if ($("#cd").val()!=""){ という 同じ条件で、双方をくくるのが常識だと思うので、記述方法・対策を教えてくださいませんか?

自分の分かる範囲でコーディングを続けていても 成長できないと思いましたのでお問い合わせさせて頂きました、何卒よろしくお願い申しあげます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

if ($("#cd").val()!=""){ という 同じ条件で、双方をくくるのが常識だと思うので、

その「常識」とやらがおかしいです。

イベントハンドラを条件付きで仕掛けることは面倒になるので、「イベントを常に駆動させて、イベント内で条件に当てはまるか判定する」(イベントハンドラ内にif文を書く)という手段がいちばん現実的です。

投稿2019/01/26 13:41

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/01/26 13:43

そもそも、イベントハンドラとして「false」だけ書いたことが、ほぼありません。
saya24

2019/01/27 03:01

ご見解ありがとうございます、何分JQuery(JSも)を使い始めてまもないもので、かつ自身の作業が果たして常識的なのか不安になることがよくありまして。 従来自身がとってきたコーディング方法:イヴェント視点で制御する方式は強ち間違いないということですかね。$("#id").on('keydown', function (){ ここで【if{}】を入れる }) 別の要素についても、同じイヴェント定義を適応したい場合、要素(セレクタ)を併記するということか...ある状況下のみ、という条件が頭の中に真っ先にきてしまい混乱していましたが
guest

0

#aの値が空白・NULLの場合は

val aValue = $("#a").get(0).value; if (aValue == "") {//何かしらの処理

#aの値と**#bの値**が空白・NULLの場合は

val aValue = $("#a").get(0).value; val bValue = $("#b").get(0).value; if (aValue == "" && bValue == "") {//何かしらの処理

#aの値もしくは**#bの値**が空白・NULLの場合は

val aValue = $("#a").get(0).value; val bValue = $("#b").get(0).value; if (aValue == "" || bValue == "") {//何かしらの処理

こういうことでしょうか??

投稿2019/01/26 14:44

編集2019/01/26 14:51
Mack-K

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2019/01/27 02:52

ご親切にご見解を頂きありがとうございます。 条件式の書き方が分からなかったのではなかったのです。イヴェントの視点からしかJQueryのコーディングを定義してこなかったので、画面上の要素がある状況下の場合にだけ作用するイヴェント発火はどういう記述をするのだろう?と思ったのです。 イヴェントの視点から定義するのが常識のような感じですかね $("#id").on('keydown', function (){ ここで【if{}】を入れる })
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問