This topic is locked
[SOLVED]

How to make an input field invisible

1/22/2022 2:02:05 PM
PHPRunner General questions
J
Jan author

Everybody,
I have a client list. I can also edit this list. In the edit page there is a drop-down list in which I can choose with VAT number or without VAT number. If I make the choice "without VAT number", the input field "VAT number" must become invisible. How can I fix this?
Thank you for any suggestion

T
thamestrader 1/22/2022

I would suggest having a look at the JSONLOAD event. I have a similar thing on an address input page with a radio button to indicate whether its a House, Flat or Hostel address, each of which requires visually different data entry field labels. The JSONLOAD event responds to the radio button selected and dynamiclly hides or unhides labels and fields as required, I must have borrowed and adpted this from examples in the Manuals, as I'm not a Javascript person.

I've included both the Add page and Edit page event code as they are different I'd recommend doing Add first. Hope this helps.

JSONLOAD Event code for my add page
var ctrl_str2 = Runner.getControl(pageid, 'street2');
ctrl_str2.addStyle('text-transform: capitalize;');
var ctrl = Runner.getControl(pageid, 'area');
ctrl.addStyle('text-transform: capitalize;');
var ctrl = Runner.getControl(pageid, 'town');
ctrl.addStyle('text-transform: capitalize;');
var ctrl = Runner.getControl(pageid, 'postcode');
ctrl.addStyle('text-transform: uppercase;');

var ctrl = Runner.getControl(pageid, 'NumData');
ctrl.addStyle('text-transform: uppercase;');
var ctrl = Runner.getControl(pageid, 'BldgData');
ctrl.addStyle('text-transform: capitalize;');

// this is the radio button
var ctrl_accom = Runner.getControl(pageid, 'accom_type');

var ctrl_NumLbl = Runner.getControl(pageid, 'NumLbl');
var ctrl_BldgLbl = Runner.getControl(pageid, 'BldgLbl');

// field street1 is on the hidden and populated from the contents of NumData and BldgData in the Before Record Added Event.
// street1 has to be on the page in order to be read and written by PHPRunner
pageObj.hideField('street1');

ctrl_accom.on('change', function(){
pageObj.showField('NumLbl'); pageObj.showField('NumData');
pageObj.showField('BldgLbl'); pageObj.showField('BldgData');
pageObj.showField('street2'); pageObj.showField('area');

pageObj.showField('town'); pageObj.showField('postcode');

switch(ctrl_accom.getValue()) {
case 'Flat':
ctrl_NumLbl.setValue('Flat No.'); ctrl_BldgLbl.setValue('Building');
break;
case 'NFA':
pageObj.hideField('NumLbl'); pageObj.hideField('NumData');
pageObj.hideField('BldgLbl'); pageObj.hideField('BldgData');
pageObj.hideField('street2'); pageObj.hideField('area'); pageObj.hideField('town');
pageObj.hideField('postcode');
break;
case 'Hostel':
ctrl_NumLbl.setValue('Room No.'); ctrl_BldgLbl.setValue('Hostel ');
break;
case 'House':
ctrl_NumLbl.setValue('House No.'); ctrl_BldgLbl.setValue('Street ');
break;
}

JSONLOAD Event code for Edit Page is more complex

var ctrl_str2 = Runner.getControl(pageid, 'street2');
ctrl_str2.addStyle('text-transform: capitalize;');
var ctrl_area = Runner.getControl(pageid, 'area');
ctrl_area.addStyle('text-transform: capitalize;');
var ctrl_town = Runner.getControl(pageid, 'town');
ctrl_town.addStyle('text-transform: capitalize;');
var ctrl_pc = Runner.getControl(pageid, 'postcode');
ctrl_pc.addStyle('text-transform: uppercase;');

var ctrl_NumData = Runner.getControl(pageid, 'NumData');
ctrl_NumData.addStyle('text-transform: uppercase;');
var ctrl_BldgData = Runner.getControl(pageid, 'BldgData');
ctrl_BldgData.addStyle('text-transform: capitalize;');

var ctrl_accom = Runner.getControl(pageid, 'accom_type');
var ctrl_NumLbl = Runner.getControl(pageid, 'NumLbl');
var ctrl_BldgLbl = Runner.getControl(pageid, 'BldgLbl');

pageObj.hideField('street1');

$(document).ready(function(){
ctrl_NumData.setValue(proxy.num); ctrl_BldgData.setValue(proxy.building);
var ctrl_accom = Runner.getControl(pageid, 'accom_type');
switch(ctrl_accom.getValue()) {
case 'Flat':
ctrl_NumLbl.setValue('Flat No.'); ctrl_BldgLbl.setValue('Building');
break;
case 'NFA':
pageObj.hideField('NumLbl'); pageObj.hideField('NumData');
pageObj.hideField('BldgLbl'); pageObj.hideField('BldgData');
pageObj.hideField('street2'); pageObj.hideField('area'); pageObj.hideField('town');
pageObj.hideField('postcode');
break;
case 'Hostel':
ctrl_NumLbl.setValue('Room No.'); ctrl_BldgLbl.setValue('Hostel ');
break;
case 'House':
ctrl_NumLbl.setValue('House No.'); ctrl_BldgLbl.setValue('Street ');
break;
}
});
// Hide appropriate fields if accom type changes
ctrl_accom.on('change', function(){
pageObj.showField('NumLbl'); pageObj.showField('NumData');
pageObj.showField('BldgLbl'); pageObj.showField('BldgData');
pageObj.showField('street2'); pageObj.showField('area');
pageObj.showField('town'); pageObj.showField('postcode');

ctrl_NumData.on('focus', function(){
ctrl_NumData.setValue(''); ctrl_BldgData.setValue('');
ctrl_str2.setValue(''); ctrl_area.setValue('');
ctrl_town.setValue(''); ctrl_pc.setValue('');
});

switch(this.getValue()) {
case 'Flat':
ctrl_NumLbl.setValue('Flat No.'); ctrl_BldgLbl.setValue('Building');
break;
case 'NFA':
pageObj.hideField('NumLbl'); pageObj.hideField('NumData');
pageObj.hideField('BldgLbl'); pageObj.hideField('BldgData');
pageObj.hideField('street2'); pageObj.hideField('area'); pageObj.hideField('town');
pageObj.hideField('postcode');
break;
case 'Hostel':
ctrl_NumLbl.setValue('Room No.'); ctrl_BldgLbl.setValue('Hostel ') ;
break;
case 'House':
ctrl_NumLbl.setValue('House No.'); ctrl_BldgLbl.setValue('Street ');
break;
}
});
J
Jan author 1/23/2022

this code works fine. Thank you