# TypedInput value always is str

**URL:** <https://discourse.nodered.org/t/typedinput-value-always-is-str/32682>\
**Category:** Developing Nodes\
**Created:** [10 September 2020 09:21 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682 "2020-09-10T09:21:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jinyistudio](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jinyistudio/32/23670_2.png) [@jinyistudio](https://discourse.nodered.org/u/jinyistudio)\
**Post date:** [10 September 2020 09:21 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/1 "2020-09-10T09:21:55Z")

</div>

I can change payload type run time. Payload type always is "str" when i open properties again. 😂

![Noname](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/e/2e74f701c0985eadf73138de9e83a66333b894c7.jpeg)

HTML

```auto
 <label for="node-input-payload"> payload</label>
  <input type="text" id="node-input-payload" style="width:200px;">
   <input type="hidden" id="node-input-payload-type" style="width:200px;">
<script type="text/javascript">

```

```auto
<script type="text/javascript">
    RED.nodes.registerType('iiotgw-dev in',{
        category: 'JinYi Studio',
        color:"#c6dbef",
        defaults: {
            name: { value:"" },           
            pin: { value:"", required:true, validate:RED.validators.number() },                      
            read: { value:false },
            user: { value:false },
            payload: { validate: RED.validators.typedInput("propertyType") },
            edge: { value:1}
        },
        inputs:1,
        outputs:1,
        icon: "rpi.png",
        label: function() {            
            return this.name || 'GPIO'+this.pin ;
        },
        labelStyle: function() {
            return this.name?"node_label_italic":"";
        },
        outputLabels: function() { return 'GPIO'+this.pin; },
        paletteLabel: "Dev in",
        oneditprepare: function() {   
            var setstate1 = function () {
                if ($('#node-input-user').is(":checked")) {
                    $("#node-set-payload").show();
                } else {
                    $("#node-set-payload").hide();
                }                
           };

            var setstate = function () {
                var n1 = Number($("#node-input-edge").val());
                // alert("val="+n1);                
                if (n1===1) {
                   $("#node-set-user").hide();
                } else {
                   $("#node-set-user").show();                   
                }      
                setstate1();
           };
           
           $("#node-input-edge").change(function () { setstate(); });          
           $("#node-input-user").change(function () { setstate1(); });
           setstate();
           $("#node-input-payload").typedInput({               
                type:"str",
                types:["str","num","bool"],
                typeField: "#node-input-payload-type"
            });          
        }
    });
</script>

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [10 September 2020 09:51 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/2 "2020-09-10T09:51:02Z")

</div>

> [@jinyistudio](#):
>
> ```auto
> $("#node-input-payload").typedInput({               
> type:"str",
> types:["str","num","bool"],
> typeField: "#node-input-payload-type"
> });          
> 
> ```

You are setting it to string on initialisation.

Remove the `type:"str"` restart node-red, refresh browser, try it again.

---

<div class="post-metadata">

**Author:** ![jinyistudio](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jinyistudio/32/23670_2.png) [@jinyistudio](https://discourse.nodered.org/u/jinyistudio)\
**Post date:** [11 September 2020 01:06 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/3 "2020-09-11T01:06:22Z")

</div>

I tried, the same result 😂 It always show "str" type.

```auto
$("#node-input-payload").typedInput({               
        types:["str","num","bool"],
        typeField: "#node-input-payload-type"
});

```

---

<div class="post-metadata">

**Author:** ![jinyistudio](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jinyistudio/32/23670_2.png) [@jinyistudio](https://discourse.nodered.org/u/jinyistudio)\
**Post date:** [11 September 2020 01:39 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/4 "2020-09-11T01:39:09Z")

</div>

It is OK when i add ( payloadtype: {value: 'num' } ) for payloadtype 🤩 🤩

```auto
defaults: {
            name: { value:"" },           
            pin: { value:"", required:true, validate:RED.validators.number() },                      
            read: { value:false },
            user: { value:false },
            payload: { value: 1, validate: RED.validators.typedInput('payloadtype')},
            payloadtype: {value: 'num' },
            edge: { value:1, required:true}
},

```

js , 💥_change node.payload to node.payloadtype selected data type !_  
`var payload1 = RED.util.evaluateNodeProperty(node.payload, node.payloadtype, node);`

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [11 September 2020 06:08 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/5 "2020-09-11T06:08:34Z")

</div>

> [@jinyistudio](#):
>
> It is OK when i add ( payloadtype: {value: 'num' } ) for payloadtype

Ah yes, I missed the fact you hadn't added the variable into the default object. That too is important. Note, you can set it to str in the default if you wish, the important part is that the variable is declared.

---

<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:** [10 November 2020 06:08 UTC](https://discourse.nodered.org/t/typedinput-value-always-is-str/32682/6 "2020-11-10T06:08:49Z")

</div>

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