# Ex : press a button then flag^=1;

**URL:** <https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724>\
**Category:** General\
**Created:** [28 June 2021 02:14 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724 "2021-06-28T02:14:57Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [28 June 2021 02:14 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/1 "2021-06-28T02:14:57Z")

</div>

Deal All :

Does it has like title can be come true?  
How do to?

Thank u.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [28 June 2021 06:05 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/2 "2021-06-28T06:05:24Z")

</div>

Show us what you have tried and tell us what doesn't work

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [28 June 2021 06:15 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/3 "2021-06-28T06:15:38Z")

</div>

Dear Sir :

It just a idea.

I hope it like C,below :  
if(button==0) flag=1;  
else flag=0;

Thank u.

---

<div class="post-metadata">

**Author:** ![pranavthakkar](https://avatars.discourse-cdn.com/v4/letter/p/e99b99/32.png) [@pranavthakkar](https://discourse.nodered.org/u/pranavthakkar)\
**Post date:** [28 June 2021 06:23 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/4 "2021-06-28T06:23:29Z")

</div>

better if you can read the [documentation](https://nodered.org/docs/user-guide/writing-functions#getset-multiple-values). You will come up with better idea.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [28 June 2021 06:26 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/5 "2021-06-28T06:26:42Z")

</div>

Dear Sir :

Ok,I will try to understand...

Thank u.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [28 June 2021 07:04 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/6 "2021-06-28T07:04:02Z")

</div>

> [@jlian168](#):
>
> if(button==0) flag=1;  
> else flag=0;

That should work, assuming that `button` is the variable you want to test and you want to set the value of an already declared variable `flag`

For basic javascript help the w3schools site is good. [JavaScript Tutorial](https://www.w3schools.com/js/default.asp)

Colin

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [28 June 2021 08:18 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/7 "2021-06-28T08:18:17Z")

</div>

Dear Sir :

I will read the information from the w3schools.

Thank u.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 01:18 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/8 "2021-07-01T01:18:27Z")

</div>

Dear Sir :

At pic red circle, Why flag no change?

Thank u.

 ![螢幕擷取畫面 2021-07-01 091452](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/b/4b10894c08840588daf0b16cc26ecfa1cf426445.jpeg)  
 ![螢幕擷取畫面 2021-07-01 091549](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/1/b15dcb4efde81571cfa842a278583e320862ff9a.jpeg)

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [1 July 2021 06:19 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/9 "2021-07-01T06:19:25Z")

</div>

^= is a bitwise XOR assignment  
flag = flag XOR 1  
[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise\_XOR\_assignment](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR_assignment)

Is that really what you are trying to do?  
Why?

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 06:30 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/10 "2021-07-01T06:30:10Z")

</div>

Dear jbudd :

If I want to control LED is on/off,  
Should to do like that...  
But flag^=1; (not correct, why?)  
Cause Let flag=0; ??? So How can I to initial flag in right place?

Thank u.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [1 July 2021 07:05 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/11 "2021-07-01T07:05:53Z")

</div>

Your button can send a number (0 or 1), a boolean (true or false), a string ("ON" or "OFF").  
Make it send the datatype that you need to control the LED and get rid of the function node.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 07:09 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/12 "2021-07-01T07:09:57Z")

</div>

Dear jbudd :

But the ui\_button just can only true or false!

Thank u.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [1 July 2021 07:29 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/13 "2021-07-01T07:29:54Z")

</div>

[quote="jlian168, post:12, topic:47724"]  
But the ui\_button just can only true or false!  
[/quote

Note the "When clicked send:" setting at the bottom of this shot  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/6/2649ff8617925459487ecb69313a98371c9477ae.png)

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [1 July 2021 07:33 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/14 "2021-07-01T07:33:40Z")

</div>

Again, as per your other thread, you need to use context to hold the existing flag state, as @knolleary showed you.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 07:40 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/15 "2021-07-01T07:40:33Z")

</div>

Dear All Sir : Thanks for ur reply...

ok, I see.  
And hv a question to I need to ask knolleary...

Thanks All Sir again.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 08:39 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/16 "2021-07-01T08:39:19Z")

</div>

Dear dceejay :

Sorry..., Here again. Still cant be correct! at pic and below :

1. I press Toggle SW 2 times it still send 1 to debug window.
2. So my code where is wrong?

Thank u.

 ![螢幕擷取畫面 2021-07-01 163606](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/a/6a48691241d30464394bf65aa8e109e9e324e1c3.jpeg)

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [1 July 2021 08:58 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/17 "2021-07-01T08:58:08Z")

</div>

You `return msg` inside the `if` block - which means the `context.set()` line at the end does not get called,

Move the `context.set` line to just before the `return msg` line.

---

<div class="post-metadata">

**Author:** ![jlian168](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jlian168/32/43737_2.png) [@jlian168](https://discourse.nodered.org/u/jlian168)\
**Post date:** [1 July 2021 09:03 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/18 "2021-07-01T09:03:37Z")

</div>

Dear knolleary :

Oh, I see, Im so so so stupid..haha.

Thank u very much.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [15 July 2021 09:04 UTC](https://discourse.nodered.org/t/ex-press-a-button-then-flag-1/47724/19 "2021-07-15T09:04:23Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
