こんにちは。
特定のテキストフィールド[url]の値が空の場合、スペースフィールド[vimeo]を非表示にしたいのですが上手くいきません。
以下コードでは何が問題でしょうか。
(function() {
'use strict';
var events = [
'app.record.edit.show'
];
kintone.events.on(events, function(event) {
var rec = event.record;
if (rec.url.value.length == 0) {
elVimeo = kintone.app.record.getSpaceElement('vimeo');
elVimeo.parentNode.style.type = 'hidden';
}
});
})();
rex0220 様
ご返信ありがとうございます!
リンク先を参考に
if (!rec.url.value) {
でnull判定をするようコードを修正しました。
しかし思ったような動作にはならず。。。
もう少し頑張ってみます!
(function() {
'use strict';
var events = [
'app.record.edit.show'
];
kintone.events.on(events, function(event) {
var rec = event.record;
if (!rec.url.value) {
elVimeo = kintone.app.record.getSpaceElement('vimeo');
elVimeo.parentNode.style.type = 'hidden';
}
});
})();
下記でいかがですか?
elVimeo.parentNode.style.visibility = ‘hidden’;
または、
elVimeo.parentNode.style.display = ‘none’;
スペースフィールド[Vimeo]を非表示にしたかったので、
・親要素直下に<input>タグを設置
・属性にtype = "hidden"を設定
すればと考えたのですが、これも上手くいきませんでした。
DOMを確認してみますと、
となっておりましたので、以下のようにコードを作成しましたが上手くいきませんでした。
(function() {
'use strict';
var events = [
'app.record.edit.show'
];
kintone.events.on(events, function(event) {
var rec = event.record;
if (!rec.url.value) {
elInput = document.createElement('input');
elInput.type = 'hidden';
elVimeo = kintone.app.record.getSpaceElement('vimeo');
elVimeo.parentNode.appendChild(elInput);
}
});
})();
なるほど、それならばスペースを含む行ごと非表示にするといいですよ。
elVimeo.parentNode.parentNode.style.display = ‘none’;
rex0220 様
ご返信ありがとうございます。
アドバイスをもとに以下コードに修正してみましたが、上手くいきませんでした。
(function() {
'use strict';
var events = [
'app.record.edit.show'
];
kintone.events.on(events, function(event) {
var rec = event.record;
if (!rec.url.value) {
elVimeo = kintone.app.record.getSpaceElement('vimeo_content');
elVimeo.parentNode.parentNode.style.display = 'none';
}
});
})();
変数定義がされていないようです。
var elVimeo = kintone.app.record.getSpaceElement(‘vimeo’);
コンソール上でエラーがないか確認しましょう。
動かない?そんな時はデバッグをしてみよう!入門編
rex0220 様
ご返信ありがとうございます。
変数定義忘れておりました汗
初歩的なミスで申し訳ございません。
修正してみましたが動作しませんでしたので、再度コードを見直してみたいと思います。
system
(system)
クローズされました:
11
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。