JavaScriptにて入力チェックを行った後、エラーが発生したフィールドにフォーカスを設定したいと思っています。
入力チェックについては、作成できたのですが、
フォーカスをセットする方法が解らない状態です。
JavaScriptでの書き方としては、
対象の要素名を指定して「focus」を実行すれば良いと理解していますが、
この方法で実現できますでしょうか?
また、Kintoneにて対象のフィールドの要素名を確認する方法はありますか?
よろしくお願いします。
JavaScriptにて入力チェックを行った後、エラーが発生したフィールドにフォーカスを設定したいと思っています。
入力チェックについては、作成できたのですが、
フォーカスをセットする方法が解らない状態です。
JavaScriptでの書き方としては、
対象の要素名を指定して「focus」を実行すれば良いと理解していますが、
この方法で実現できますでしょうか?
また、Kintoneにて対象のフィールドの要素名を確認する方法はありますか?
よろしくお願いします。
後藤さん
下記のようなコードで可能です。
value-nnnnnn の nnnnnn は、項目に付与された番号でブラウザのデバッグツールで確認できます。
document.querySelector('.value-nnnnnn input').focus();
rex0220様
ご回答ありがとうございます。
教えていただきましたJavaScriptのコードにて、指定のフィールドにフォーカスできました。
ありがとうございました。
指定のフィールドに対してフォーカスする方法について、
rex0220様にご回答いただいた「document.querySelector(‘.value-nnnnnn input’).focus();」にて、
Chrome では動作し、指定のフィールドにフォーカスできました。
IE11にて試したところ、指定したフィールドにフォーカスできませんでした。
IEに対してはエミュレート設定をしておらず、「X-UA-Compatible: IE=Edge」となっています。
このコードについては、IE8以降から使用できるとどこかで紹介されていたと思うのですが、
それ以外に条件がありますでしょうか?
よろしくお願いします。
こちらで試してみましたが、windows10 で edge, IE11 とも問題なくフォーカス出来ました。
何か環境か設定が違うのかもしれませんね。
あと他のエラー等が発生していないでしょうか?
rex0220様
当方はWindows7/IE11です。
会社方針でIEの設定がされている部分があると思われ、まっさらな初期導入のIE11とは言えない状況だと思われます。
IEにてデバッガー(F12 開発者ツール)でエラー発生状況を確認しましたが、
エラーは発生していません。(警告は出ましたが・・・)
なお、デバッグ用に「focus」の後に「alert」を入れてみましたが、
メッセージが表示されましたので、forcsは処理されているが無視されているといった感じと思われます。
当方のIEの環境の問題が大きいのではないかと思いました。
文字列(1行)の場合はうまくいくのですが文字列(複数行)ではうまくいかないです。
文字列(複数行)のパターン教えていただけますでしょうか。
ta さん
文字列(複数行)は、タグが異なります。
document.querySelector('.value-nnnnnn textarea').focus();
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。