[英]How to get dynamic Javascript-Code for different ElementId to change element.value with range-slider.value
I created dynamically a HTML-Form and changed the value in Form-Elements with Javascript. 我动态创建了一个HTML表单,并使用Javascript更改了Form-Elements中的值。 How can I also create the Javascript code dynamic?
我怎样才能创建动态的Javascript代码? Or is there a better way to code in Javascript that every range and input element I create depend upon each other?
或者是否有更好的方法在Javascript中编码我创建的每个范围和输入元素都相互依赖?
I thought about changing elements by classes but it doesn't works (maybe wrong coded?). 我想过按类更改元素但它不起作用(可能是错误的编码?)。 And I was not sure if it works, because I have more than one Volume-input element (and pressure element).
我不确定它是否有效,因为我有多个Volume-input元素(和压力元素)。 They will be created for different objects in the CMS.
将为CMS中的不同对象创建它们。 I 'display: block/none;'
我'显示:阻止/无;' them.
他们。
HTML-Code would look Like: HTML代码看起来像:
<form>
<label for="(dynamicID)">Volume</label>
<input type="number" class="text-center" id="(dynamicID)">
<input id="slide-(dynamicID)" type="range" class="slider" min="1" max="10" step="1"/>
</form>
Javascript to change the Value of the Input element when slider's input change (and also the other way round) looks Like: 当滑块的输入改变(以及反过来)时,Javascript更改Input元素的值看起来像:
var sliders = document.getElementById("slide-(dynamicID)");
var outputs = document.getElementById("(dynamicID)");
outputs.value = sliders.value;
sliders.oninput = function() {
outputs.value = this.value;
}
outputs.oninput = function() {
sliders.value = this.value;
}
That works Perfectly when I code it statically. 当我静态编码时,这非常有效。 I can code the HTML-Elements with my CMS dynamic.
我可以用我的CMS动态编码HTML-Elements。
I also will take any other advice. 我也会接受任何其他建议。 Thanks in advance.
提前致谢。
function setValue(e){ let sliders = document.getElementsByClassName("dynamicInput"); Array.prototype.forEach.call(sliders,(slider)=>{ slider.value = e.target.value }) } let sliders = document.getElementsByClassName("dynamicInput"); Array.prototype.forEach.call(sliders,(slider)=>{ slider.oninput = setValue; });
<form> <label for="(dynamicID)">Volume</label> <input type="number" class="text-center dynamicInput" id="(dynamicID)"> <input id="slide-(dynamicID)" type="range" class="slider dynamicInput" min="1" max="10" step="1"/> </form>
this is a bit mroe dynamic it works for all elements that have "dynamicInput" in the className and implment a .value setter 这是一个有点mroe动态,它适用于在className中具有“dynamicInput”的所有元素,并且实现了.value setter
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.