Expand my Community achievements bar.

SOLVED

Webpage data not transfering to schema after function change

Avatar

Level 2

After someone hits submit on a form, i am getting two rows of data.  Both have the same values for the manual inputs (email, name, etc), but for my checkboxes I am getting different values.  On the first value, it shows all three values as not interetested/"0", and then the second row will show their actual inputs.  Any idea why this is happening?

 

function next() {
var valid = validateForm()
if (valid == true) {
document.controller.submit('next','_self','next');
} else {

alert("Error");

}

if(document.getElementById('control_VC').checked){
document.controller.setValue('/ctx/vars/virtualcare',"0");
} else{
document.controller.setValue('/ctx/vars/virtualcare',"1");
}
if(document.getElementById('control_OB').checked){
document.controller.setValue('/ctx/vars/onlinebooking',"0");
} else{
document.controller.setValue('/ctx/vars/onlinebooking',"1");
}
if(document.getElementById('control_LHP').checked){
document.controller.setValue('/ctx/vars/profile',"0");
} else{
document.controller.setValue('/ctx/vars/profile',"1");
}
}

 

I also then added an alert if my email value was not filled out, and now the values are showing in the debug mode of the web page, but the values are not transferring to the data schema like they were when function validateForm()  was set to only "return true;"

 

function setDefaultValue() {
document.getElementById("control_EMAIL").value = null;
}
function updateEmail(email) {
document.controller.setValue('/ctx/vars/email', email);
document.getElementById("control_EMAIL").value = "Ok";
}

function validateForm() {
var email = document.getElementById("control_EMAIL").value
if (email == null) {
alert("Alert");
}
else {
return true;
}
}

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Level 9

Hi,

 

Your function validateForm(), returns value only when email value is not null.

So there's two loop happening:

1) If email value is not null, script is going to next page and inserting data.

2) If email value is null, your function returns nothing, so script goes to else part and never goes to next page of storage. 

That's why values are not inserted.

 

For your question related to two data value insert, I would suggets to place your if else check before submitting to next page, i.e:

if (valid == true) {

//Add your if else logic here

document.controller.submit('next','_self','next');

 

Thanks.

View solution in original post

2 Replies

Avatar

Correct answer by
Level 9

Hi,

 

Your function validateForm(), returns value only when email value is not null.

So there's two loop happening:

1) If email value is not null, script is going to next page and inserting data.

2) If email value is null, your function returns nothing, so script goes to else part and never goes to next page of storage. 

That's why values are not inserted.

 

For your question related to two data value insert, I would suggets to place your if else check before submitting to next page, i.e:

if (valid == true) {

//Add your if else logic here

document.controller.submit('next','_self','next');

 

Thanks.

Avatar

Community Advisor

Hello @bryceh57660644 ,
could you please share the input field screenshot and the javascript part.

If by clicking on the submit button you can see the updated variables in debug mode.

Then you can add this line after setting variables to redirecting to next javascript activity.

document.controller.submit('next');

 

let me knw if that helps. 


     Manoj
     Find me on LinkedIn