Form Elements Calculating

Gauging by other’s questions on this forum, I’m rather embarrased to ask this simple question…

I have a Dynamic Page that loads in my Collection information great. Once the form is ready, I just need to perform a simple price markup calculation. I have two text elements on my form, Supplier Price and Customer Price.

When the Form is ready with the Collection data, is there a way to get the Customer Price text element to display the calculated markup price?

Example calculation: Supplier Price * .25 + Supplier Price

It seems I’m having problems parsing the text to a number to perform the calcution.

The following code:

$w.onReady( () => {

$w("#dynamicDataset").onReady( () => {          // Allow dataset to load 
		
	var supPrice = String(parseInt($w("#text32")).value); 
	
	var cusPrice = supPrice * .25 + supPrice; 

		$w("#text37").text = cusPrice; 
	
		         console.log("Customer Cost: " + cusPrice); 

My result for the “console.log” is:

 Customer Cost: NaNundefined

Hi,

In order to calculate, you need the text as a number. Therefore, you want something like this:

var supPrice = parseInt($w("#text32").text);
var cusPrice = supPrice * 0.25 + supPrice;

You can also use Number($w(“#text32”).text) instead of parseInt($w(“#text32”).text)

Good luck,

Yisrael

Thanks for the input Yisrael!

I tried both of your suggestions, they both corrected one issue. I no longer receive an “undefined” issue, but I’m still getting a “NaN” error with the following code.

     var supPrice = Number($w("#text32")).text;	 
     var cusPrice = supPrice * .25 + supPrice; 
	
	console.log("Customer Cost: " + cusPrice); 

In all the examples I’ve seen, either the parseInt or Number methods should work, but for some reason mine isn’t. :frowning: Could there be something wrong with the way I have the code ordered?

You have the closing parenthesis in the wrong place.

Not this:
var supPrice = Number($w(" #text32 ")).text;

But this:
var supPrice = Number($w(" #text32 ").text);

By way of explanation, let’s write the code the long way:

var textValue = $w("#text32").text;
var supPrice = Number(textValue);

As you can see, it’s just a matter of parenthesis placement. Javascript is a bit fussy like that.

Yisrael

Thank you Yisrael. I’ve got to pay more attention to those little details!

Glad I could help. Gives me the warm fuzzies.