新規投稿
フォローする

カーソルの位置をわかりやすくしたい

お世話になっております。

通常ボタンをアプリ上に設置したのですが、検索ワードを入力してtabキーで検索ボタンへ移動した時に、他の箇所なら色が変わったりしてどこにカーソルがあるかわかりますが、同様にこのボタンもカーソルが来た時に何か変化を持たせることはできるのでしょうか?

カスタマイズの問題なのかもよくわかっていないので、場違いな質問でしたら申し訳ございません。

ちなみに現在のコードは下記の通りです。

jQuery.noConflict();

const FIELD_CODE = 'company';

(function ($) {
'use strict';
kintone.events.on("app.record.index.show", function (event) {

//検索キーワード
let search_word = $("<input>").addClass('kintoneplugin-input-text');
search_word.attr({type: 'text', id: 'search_word'});

//検索ボタン
let search_button = $("<input>").addClass('kintoneplugin-button-normal');
search_button.attr({type: 'submit', value: '検索!'});
search_button.click(function() {
keyword_search();
});

//キーワード検索の関数
function keyword_search(){
let keyword = htmlEscape(search_word.val());
const str_query = preareQueryString(keyword);
if (!str_query) {
document.location = location.origin + location.pathname;
} else {
document.location = location.origin + location.pathname + encodeURI(str_query);
}
}


let node_space = kintone.app.getHeaderMenuSpaceElement();
for (let i = node_space.childNodes.length - 1; i >= 0; i--) {
node_space.removeChild(node_space.childNodes[i]);
}
let label = $('<label>');
label.append('レコード内検索');
label.append(search_word);
label.append(search_button);
$(kintone.app.getHeaderMenuSpaceElement()).append(label);
return event;
});


const htmlEscape = (str) => {
if (!str) return;
return str.replace(/[&<>"'`]/g, (match) => {
const escape = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;',
'`': '&#x60;'
};
return escape[match];
});
};


const preareQueryString = (str) => {
if (!str) return;
if (str === "") {
return "";
} else {
return '?query='+ FIELD_CODE +' like "' + str + '"';
}
};

})(jQuery);

0

2件のコメント

Avatar
HANSA

吉本茜 さん

jQuery を使用しているのであれば、focusin() と focusout() を使用すれば実装可能かと思います。

 search_button.focusin(function(){

});

search_button.focusout(function(){

});

 

1
Avatar
吉本茜

HANSA様

お世話になっております。

回答いただきありがとうございます。

教えていただいた通りにやってみたところ、思っていた通りに実装することができました。

心より感謝申し上げます。

 

今後ともよろしくお願いいたします。

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