新規投稿
フォローする

カレントフィールドの取得について

このようなフォームを作成しています。

業種1,2,3,4,5,6と文字列フィールドを設定し、

myJQuery(document.getElementById(document.getElementsByClassName("input-text-cybozu")[gyosyuset + i].id)).on('keydown', function(e) {
if (e.keyCode == 18){
  //処理内容
}
});

この文字列フィールドにkeydownで処理をするようにしています。

この際、各フィールドには違う処理をさせ、keyを押されたフィールドに結果を反映させたいと思っています。

e.currentTargetで値が要素が戻ってくるのですが、実際どのフィールドにて押されたかの判断がわかりません。

どのフィールドにてイベントが発生したかどうかわかる方法はありませんでしょうか?

 

 

0

2件のコメント

Avatar
HANSA

Kintone初心者研修中

かなり無理やりですが、DOM構造的に入力する場所の親の親の兄要素(ご自分で確認ください)がフィールド名になっているので、そこにアクセスすればどのフィールドに入力されたか確認できます。

ただし、取得できるのはフィールド名であり、フィールドコードではないことに注意が必要です。

myJQuery(document.getElementById(document.getElementsByClassName("input-text-cybozu")[1].id)).on('keydown', function(e) {
console.log(myJQuery(e.currentTarget.parentNode.parentNode.previousElementSibling).text()); // ←ここです。
if (e.keyCode == 18){
  //処理内容
}
});

 

キーボード入力時にイベントを発火させたいのであれば上記の実装方法しかないと思いますが、
もし、「フィールドの値に変更があった際」でいいのであれば、 kintone.events.on('app.record.create.change.XXX', function(e){}) などの
フィールド値変更時イベントで代替する方法もあります。

0
Avatar
Kintone初心者研修中

ご回答ありがとうございます。無理やりでもなんとか実装できそうです。

1
ログインしてコメントを残してください。