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

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

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

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

JavaScript

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

Q&A

解決済

1回答

2480閲覧

ブックマークレットで自動入力したデータが送信されない

tokyo_e_gumi

総合スコア7

CMS

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

JavaScript

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

0グッド

0クリップ

投稿2019/07/30 05:52

編集2019/07/30 06:17

前提・実現したいこと

CMSでのフォーム入力簡易化のため、
プレーンJSで組んだブックマークレットでフォーム欄に自動入力をさせています。

発生している問題・エラーメッセージ

そのまま送信ボタンを押すと、自動入力したデータが反映されません。
ブックマークレット発動後、なんらかのフォーム操作*1をしたのちに送信すると反映します。
この「なんらかのフォーム操作」をせずに反映させたいと考えています。

該当のソースコード

javascript

1javascript:(function(){ 2 //処理はここから 3 var form = document.forms[0]; //フォーム特定 4 var target = form.elements.###; //### = 自動入力先のname属性値 5 6 //各種判定と処理 7 // (各種フォーム上データから判定を行い、変数に入れます。) 8 9 //文言生成 10 // (targetへ挿入するため、変数をひとまとめにします。) 11 12 //挿入 13 target.value = newdata; 14 15 //移動 16 target.focus(); //自動入力したフォームにフォーカスを移動 17})();

これを縮めてブックマークレットにしています。

試したこと

*1の操作をさせるキーイベントを発火させても反映せず

補足情報(FW/ツールのバージョンなど)

環境はWindows版Chrome最新版です

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

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

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

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

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

Lhankor_Mhy

2019/07/30 05:54

CMSでのフォーム入力ページをご提示ください。
tokyo_e_gumi

2019/07/30 06:04

ご回答ありがとうございます。 大変恐縮ながら社内情報のため、お見せすることが難しいです。
tokyo_e_gumi

2019/07/30 06:07

失礼いたしました。 CMSのタグを追加いたしました
Lhankor_Mhy

2019/07/30 06:07

となると、有効な回答は難しいのではないでしょうか。 CMSを開発した業者に委託してはいかがでしょうか。
m.ts10806

2019/07/30 06:11

質問編集反映されていないようです(回答でもよくあります)
x_x

2019/07/30 06:16

「なんらかのフォーム操作」をどのように判別しているかは CMS のスクリプトを調べてみないとわからないでしょう。 何を使っているのでしょうか?
tokyo_e_gumi

2019/07/30 09:07 編集

Lhankor_Mhy様 x_x様 ごもっともです。 ページのソースを保存したhtmlをアップロードしましたので、 見ていただけましたら幸いです。 http://dtbn.jp/******* 追記:解決できたため非公開にしました mts10806様 大変失礼いたしました。再度確認し、今度こそ反映できたかと思いますがいかがでしょうか?
m.ts10806

2019/07/30 06:32

既存のCMSではないんですかね。(WordPressとか) >htmlをアップロードしましたので、 これって「お見せすることが難しい」には入らないのでしょうか? 今現在全世界に公開されてしまっていますが。
m.ts10806

2019/07/30 06:33

それに、この内容・・。ちょっと利用規約的にグレーな気が。
Lhankor_Mhy

2019/07/30 06:46

拝読。『そのまま送信ボタンを押すと、自動入力したデータが反映されません。』とのことですが、この送信ボタンとは、「変更内容を反映させる」ですか?
Lhankor_Mhy

2019/07/30 06:50

あ、違うか。「更新する」の方かな…… 『なんらかのフォーム操作*1』を具体的にご提示いただくことはできますか?
tokyo_e_gumi

2019/07/30 07:07

mts10806様 汎用的なCMSではなく、そこについてもあらかじめ記載すべきでした。 今後気をつけます。 データの一部はダミーおよび伏せてありますので当方側の問題はございません。 規約は少々危ういところではありますが不正利用ではないと認識しております。 Lhankor_Mhy様 お読みいただきありがとうございます。 表記ゆれ失礼いたしました。「更新する」ボタンです。 なんらかのフォーム操作とは、 適当なinputにフォーカスを合わせ、 キーボード操作(各種キーやTab、カーソルキー)をすることを指します。
Lhankor_Mhy

2019/07/30 07:09

ふむむ。 ソースを見る感じ、changeイベントかなあ……? $(target).change(); みたいなのを入れるのはどうでしょう?
m.ts10806

2019/07/30 07:13

tokyo_e_gumiさん 了解です。
tokyo_e_gumi

2019/07/30 07:31

Lhankor_Mhy様 ありがとうございます、やってみます!
tokyo_e_gumi

2019/07/30 08:56

Lhankor_Mhy様 アタリでした! JSだけでフォームを操作するとchangeイベントが発生しないのですね。 勉強になりました。
Lhankor_Mhy

2019/07/30 09:01

ご解決されて何よりです。
guest

回答1

0

ベストアンサー

公開が難しそうなので一般的な話として入力検知としては change のほかに input focusout blur などが考えられます。
対象の input などで .dispatchEvent() を呼べばいいでしょう。
isTrusted プロパティまで見てチェックしていたらお手上げです。

JavaScript

1target.dispatchEvent(new Event('blur'));

https://developer.mozilla.org/ja/docs/Web/API/EventTarget/dispatchEvent
https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted

投稿2019/07/30 07:05

x_x

総合スコア13749

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

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

tokyo_e_gumi

2019/07/30 07:32

ありがとうございます、やってみます!
tokyo_e_gumi

2019/07/30 09:01

いただいた情報を元に、 それぞれ試したところchangeを検知しているようで、 下記で反映させることができました。 ありがとうございます! target.dispatchEvent(new Event('change'));
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問