前提・実現したいこと
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最新版です
CMSでのフォーム入力ページをご提示ください。
CMSのタグがあるようでしたら追加しておいてください
https://teratail.com/tags
ご回答ありがとうございます。
大変恐縮ながら社内情報のため、お見せすることが難しいです。
失礼いたしました。
CMSのタグを追加いたしました
となると、有効な回答は難しいのではないでしょうか。
CMSを開発した業者に委託してはいかがでしょうか。
質問編集反映されていないようです(回答でもよくあります)
「なんらかのフォーム操作」をどのように判別しているかは CMS のスクリプトを調べてみないとわからないでしょう。
何を使っているのでしょうか?
Lhankor_Mhy様
x_x様
ごもっともです。
ページのソースを保存したhtmlをアップロードしましたので、
見ていただけましたら幸いです。
http://dtbn.jp/*******
追記:解決できたため非公開にしました
mts10806様
大変失礼いたしました。再度確認し、今度こそ反映できたかと思いますがいかがでしょうか?
既存のCMSではないんですかね。(WordPressとか)
>htmlをアップロードしましたので、
これって「お見せすることが難しい」には入らないのでしょうか?
今現在全世界に公開されてしまっていますが。
それに、この内容・・。ちょっと利用規約的にグレーな気が。
拝読。『そのまま送信ボタンを押すと、自動入力したデータが反映されません。』とのことですが、この送信ボタンとは、「変更内容を反映させる」ですか?
あ、違うか。「更新する」の方かな……
『なんらかのフォーム操作*1』を具体的にご提示いただくことはできますか?
mts10806様
汎用的なCMSではなく、そこについてもあらかじめ記載すべきでした。
今後気をつけます。
データの一部はダミーおよび伏せてありますので当方側の問題はございません。
規約は少々危ういところではありますが不正利用ではないと認識しております。
Lhankor_Mhy様
お読みいただきありがとうございます。
表記ゆれ失礼いたしました。「更新する」ボタンです。
なんらかのフォーム操作とは、
適当なinputにフォーカスを合わせ、
キーボード操作(各種キーやTab、カーソルキー)をすることを指します。
ふむむ。
ソースを見る感じ、changeイベントかなあ……?
$(target).change();
みたいなのを入れるのはどうでしょう?
tokyo_e_gumiさん
了解です。
Lhankor_Mhy様
ありがとうございます、やってみます!
Lhankor_Mhy様
アタリでした!
JSだけでフォームを操作するとchangeイベントが発生しないのですね。
勉強になりました。
ご解決されて何よりです。
回答1件
あなたの回答
tips
プレビュー