Namespace issues with binding Javascript
It’s not enough to simply define $namespacedId – you need to actually use it in your Javascript code.

If you’re defining the javascript code in your template, you’ll need to pass the namespaced ID to your template, along with name, id, and value:

return craft()-&gt;templates-&gt;render("myplugin/my_input_template", array(
    'name'         =&gt; $name,
    'id'           =&gt; $id,
    'namespacedId' =&gt; $namespacedId,
    'value'        =&gt; $value
));


Then in your template, use the id variable within id= attributes, and the namespacedId variable within Javascript code:

&lt;input type="text" id="{{ id }}-output" name="{{ name }}" value="{{ value }}"&gt;
&lt;span id="{{ id }}-value"&gt;&lt;/span&gt;
&lt;input id="{{ id }}-input" type="range" value="{{ value }}" min="0" max="1000" step="0"&gt;

{% set js %}
    $("#{{ namespacedId }}-input")[0].oninput = function () {
        $('#{{ namespacedId }}-value').html(this.value);
    };
{% endset %}

{% includeJs js %}


(I’ve cleaned up your HTML a little, besides the formatting – I added a missing quote after min="0, and removed the entire name= attribute from the 3rd input, since the first input seems like it will already take care of that.)