1

HTML. My code looks like:

<p class="left" style="margin-top: 0.5em;">
<span class="left">8. 1. pamatslimība</span>
<span style="float: right">
    <i data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-openehr-text-as-value="false" data-openehr-value-transformer="transformIcdTextToOnlyText"></i>
    <span data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-tmpl="#square" data-openehr-text-as-value="true"></span>
</span>
</p>

cant find solution how to hide first span(works as label), if second span (values) is emty.

Code is used for creating print page form.

GavinBrelstaff
  • 3,016
  • 2
  • 21
  • 39
thomm3
  • 21
  • 3
  • you have three spans in there which one do you want to test if empty? – jamiedanq Jul 14 '17 at 08:29
  • if everything inside this one "" is emty, then hide "8. 1. pamatslimība" – thomm3 Jul 14 '17 at 08:34
  • BTW to have openEHR paths on the client side is not a good solution, I would recommend to keep them in the backend and have some autogenerated code or ID on the GUI that maps to paths. – Pablo Pazos Feb 09 '18 at 06:33

1 Answers1

1
<p class="left" style="margin-top: 0.5em;">
<span class="left hideIfSpanEmpty">8. 1. pamatslimība</span>
<span style="float: right">
    <i data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-openehr-text-as-value="false" data-openehr-value-transformer="transformIcdTextToOnlyText"></i>
    <span data-openehr-field="/content[at0001]/items[lv.softdent.clinical::openEHR-EHR-ADMIN_ENTRY.izraksts.v1]/data/items[at0105]/items[at0106]" data-tmpl="#square" data-openehr-text-as-value="true"></span>
</span>
</p>

found solution with javascript

<script type="text/javascript">
function hideIfNextEmpty(el) {
  var text = 'textContent' in document ? 'textContent' : 'innerText';
  if (el.nextElementSibling[text].replace(/\s/g, '').length === 0) {
      el.style.display = 'none';
  }
}

var elements = document.getElementsByClassName("hideIfSpanEmpty");

for (var i = 0; i < elements.length; i++) {
hideIfNextEmpty(elements[i]);
}
</script>
thomm3
  • 21
  • 3