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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

2回答

4886閲覧

任意のタイミングでバリデーション:exValidation(JQuery)を発火させたい

inari1973

総合スコア35

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

2クリップ

投稿2019/04/18 16:46

編集2019/04/19 10:11

exValidationを使ってフォームのバリデーションをしていますが、ボタンを押したときではなく他の処理をしている時にJQueryを発火させたいのですが方法が分かりません。

公式のライブラリ
使い方の解説

※以下の部分を消さないと動きませんでした。
.submit(function() {
return false;
})

通常は以下のフォームのボタンを押すと発火します。

<form id="abc" action="https://~" method="post"> <input type="image"~ </form>
exValidationの設定 $(function(){ var validation = $("#abc") .exValidation({ rules: {・・・

例えば以下のような方法でバリデーションを任意のタイミングで発火させたいが動かない。

function hakka(){ $(function(){ var validation = $("#abc") .exValidation({ rules: {・・・ }

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

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

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

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

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

kei344

2019/04/18 16:50

(質問文は編集できます)プラグイン/ライブラリは公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)
inari1973

2019/04/19 02:48

公式配布サイトのURLを質問文に記載しました。
guest

回答2

0

validation.laterCall(対象コントロール) で検証できるようなので、もし全体を検証したいのであれば次のように書けばいいのではないでしょうか。
この場合にはフォーカスは移動しないようです。

JavaScript

1$(validation.conf.inputs, validation.form).each(function(index, element) { validation.laterCall(element); });

投稿2019/04/19 02:14

x_x

総合スコア13749

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

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

inari1973

2019/04/19 02:56 編集

ご回答いただきありがとうございます。validation.laterCallがポイントになりそうなのは分かりましたが、任意のタイミングで発火させる使い方が分からないままです。
x_x

2019/04/19 02:57

イベント処理がわからないということでしょうか? いまは hakka() はどのように呼び出していますか?
inari1973

2019/04/19 05:30 編集

onclick="hakka()" のようにクリックすると動くようになっています。 function hakka(){ ~ここにどように書けば良いかが分からない~ }
x_x

2019/04/19 05:15

hakkaではなく、hakka()と かっこが足りないのでは?
inari1973

2019/04/19 05:31

申し訳ございません。カッコを書き忘れていました。実際のコードにはカッコはあります。
x_x

2019/04/19 05:34

任意のタイミングというのはクリックしたときということでしょうかね? 解決したということでいいでしょうか
inari1973

2019/04/19 05:51

いいえ。申し訳ございませんが、解決しておりません。 AAAにどのように書けば動くかはまだ分かっておりません。 function hakka(){ ~AAA~ }
x_x

2019/04/19 05:57

回答したコードでダメだったところがあれば、具体的に言ってください。 エラーが出ているのでしょうか?
inari1973

2019/04/19 08:25

そのままコピペしてみましたが Uncaught ReferenceError: validation is not defined at hakka at HTMLSpanElement.onclick との表示がでて動きませんでした。 elementを#abcに変えたりして試しましたが、よく分からないままでした。申し訳ありません。
x_x

2019/04/19 08:31

なるほど。 1. $(function(){ }) を外して、スクリプトを</body>直前に移動する 2. function hakka(){ } というのはやめて、$().on('click', function() {});という形にする。 https://api.jquery.com/on/ 1か2のどちらかの方法をとってみてください
x_x

2019/04/19 08:36

↑エラーは validation が見えていないということです この際なので2を採用し jQuery らしく $('span').on('click', function(event) { ... }); としたほうがいいかもしれません
guest

0

自己解決

Windowsのみ動作する方法

バリデーションした後であれば、フォーカスなりチェンジなりすればバリデーションが発動するため、全体にチェンジなどをかければバリデーションが作動する。

バリデーションの下に function hakka(){ $('input').change(); $('select').change(); }

投稿2019/04/27 11:00

編集2019/04/28 07:59
inari1973

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問