テキストフィールドが空の場合、スペースフィールドを非表示にしたい

こんにちは。

特定のテキストフィールド[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';
}
});
})();

 

(小技)undefined と 空文字のスマートな if 文判定 が参考になると思います。

 

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’;

 

 

 

rex0220 様

 

ありがとうございます。

試してみたのですが上手くいきませんでした。

以下アプリの状態、やりたいことになります。

 

スペースフィールド[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 様

 

ご返信ありがとうございます。

変数定義忘れておりました汗

初歩的なミスで申し訳ございません。

 

修正してみましたが動作しませんでしたので、再度コードを見直してみたいと思います。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。