skip to Main Content

I have a list of option values. Only when a certain option from the value is selected and I would like to show custon_25 text field. I select a specific option like value 2, 5 or 7 then show the text field to enter.

Can anyone help please? Thanks

$('#select2-results').click('change',function()
{
  if($('value==2').is(':selected'))
  {
    $('#custom_25').show();
  }
  else
  {
    if($('#custom_25').is(':visible'))
    {
      $('#custom_25').hide();
    }
  }
});
<div id="editrow-custom_24" class="crm-section editrow_custom_24-section form-item" style="display: block;">
  <div class="label" style="display: none;">
    <label for="custom_24">Medical Service</label>
  </div>
  <div class="edit-value content">
    <div class="select2-container crm-select2 crm-form-select select2-allowclear" id="s2id_custom_24" title="Medical Service" style="display: inline-block; width: 225px;">
      <a href="javascript:void(0)" class="select2-choice" tabindex="-1">
        <span class="select2-chosen" id="select2-chosen-7">Doctor</span>
        <abbr class="select2-search-choice-close"></abbr>
        <span class="select2-arrow" role="presentation">
          <b role="presentation"></b>
        </span>
      </a>
      <label for="s2id_autogen7" class="select2-offscreen">Medical Service</label>
      <input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-7" id="s2id_autogen7" placeholder="Medical Service">
    </div>
    <select data-crm-custom="Volunteer_Registeration:Medical_Service" class="crm-select2 crm-form-select" name="custom_24" id="custom_24" title="Medical Service" style="display: none;" tabindex="-1">
      <option value="">- select Medical Service -</option>
      <option value="1">Doctor</option>
      <option value="2">Specialist (Please Specify)</option>
      <option value="3">Nurse</option>
      <option value="4">Paramedic</option>
      <option value="5">Technician (Please Specify)</option>
      <option value="6">Physiotherapist</option>
      <option value="7">Others (Please Specify)</option>
    </select>
  </div>
  <div class="clear"></div>
</div>
<div id="editrow-custom_25" class="crm-section editrow_custom_25-section form-item"><div class="label" style="display: none;"><label for="custom_25">Medical Service Specifics</label></div><div class="edit-value content"><input data-crm-custom="Volunteer_Registeration:Medical_Service_Specifics" maxlength="255" name="custom_25" type="text" id="custom_25" class="crm-form-text" placeholder="Medical Service Specifics"></div><div class="clear"></div></div>

2

Answers


  1. So? But in your html-code no #select2-results and select has style="display: none;". So I show select and use event change. Or select is hidden and one of his children has selected already?

    $('#custom_24').change(e => {
      if (e.target.value === '2' || e.target.value === '5' || e.target.value === '7') {
        $('#custom_25').show();
      } else {
        $('#custom_25').hide();
      }
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <div id="editrow-custom_24" class="crm-section editrow_custom_24-section form-item" style="display: block;">
      <div class="label" style="display: none;">
        <label for="custom_24">Medical Service</label>
      </div>
      <div class="edit-value content">
        <div class="select2-container crm-select2 crm-form-select select2-allowclear" id="s2id_custom_24" title="Medical Service" style="display: inline-block; width: 225px;">
          <a href="javascript:void(0)" class="select2-choice" tabindex="-1">
            <span class="select2-chosen" id="select2-chosen-7">Doctor</span>
            <abbr class="select2-search-choice-close"></abbr>
            <span class="select2-arrow" role="presentation">
              <b role="presentation"></b>
            </span>
          </a>
          <label for="s2id_autogen7" class="select2-offscreen">Medical Service</label>
          <input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-7" id="s2id_autogen7" placeholder="Medical Service">
        </div>
        <select data-crm-custom="Volunteer_Registeration:Medical_Service" class="crm-select2 crm-form-select" name="custom_24" id="custom_24" title="Medical Service" tabindex="-1">
          <option value="">- select Medical Service -</option>
          <option value="1">Doctor</option>
          <option value="2">Specialist (Please Specify)</option>
          <option value="3">Nurse</option>
          <option value="4">Paramedic</option>
          <option value="5">Technician (Please Specify)</option>
          <option value="6">Physiotherapist</option>
          <option value="7">Others (Please Specify)</option>
        </select>
      </div>
      <div class="clear"></div>
    </div>
    <div id="editrow-custom_25" class="crm-section editrow_custom_25-section form-item">
      <div class="label" style="display: none;"><label for="custom_25">Medical Service Specifics</label></div>
      <div class="edit-value content"><input data-crm-custom="Volunteer_Registeration:Medical_Service_Specifics" maxlength="255" name="custom_25" type="text" id="custom_25" class="crm-form-text" placeholder="Medical Service Specifics" style="display: none"></div>
      <div class="clear"></div>
    </div>
    Login or Signup to reply.
  2. If you are not going to use the value of custom_25 it is better to disable the input element. By disabling it, it will not be send in the GET/POST request on the submit event.

    You can style disabled input elements, so that they are hidden, either by using display:none or visibility:hidden.

    document.forms.form01.custom_24.addEventListener('change', e => {
      let hit = [2,5,7].some(num => e.target.value == num);
      e.target.form.custom_25.disabled = !hit;
    });
    input:disabled {
      display: none;
    }
    <form name="form01">
      <div id="editrow-custom_24" class="crm-section editrow_custom_24-section form-item" style="display: block;">
        <div class="label" style="display: none;">
          <label for="custom_24">Medical Service</label>
        </div>
        <div class="edit-value content">
          <div class="select2-container crm-select2 crm-form-select select2-allowclear" id="s2id_custom_24" title="Medical Service" style="display: inline-block; width: 225px;">
            <a href="javascript:void(0)" class="select2-choice" tabindex="-1">
              <span class="select2-chosen" id="select2-chosen-7">Doctor</span>
              <abbr class="select2-search-choice-close"></abbr>
              <span class="select2-arrow" role="presentation">
              <b role="presentation"></b>
            </span>
            </a>
            <label for="s2id_autogen7" class="select2-offscreen">Medical Service</label>
            <input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-7" id="s2id_autogen7" placeholder="Medical Service">
          </div>
          <select data-crm-custom="Volunteer_Registeration:Medical_Service" class="crm-select2 crm-form-select" name="custom_24" id="custom_24" title="Medical Service" tabindex="-1">
            <option value="">- select Medical Service -</option>
            <option value="1">Doctor</option>
            <option value="2">Specialist (Please Specify)</option>
            <option value="3">Nurse</option>
            <option value="4">Paramedic</option>
            <option value="5">Technician (Please Specify)</option>
            <option value="6">Physiotherapist</option>
            <option value="7">Others (Please Specify)</option>
          </select>
        </div>
        <div class="clear"></div>
      </div>
      <div id="editrow-custom_25" class="crm-section editrow_custom_25-section form-item">
        <div class="label" style="display: none;"><label for="custom_25">Medical Service Specifics</label></div>
        <div class="edit-value content"><input data-crm-custom="Volunteer_Registeration:Medical_Service_Specifics" maxlength="255" name="custom_25" type="text" id="custom_25" class="crm-form-text" placeholder="Medical Service Specifics" disabled></div>
        <div class="clear"></div>
      </div>
    </form>
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search