Эта проблема связана с тем, что значение width
равно 35px
, поэтому вам следует удалить px
, прежде чем присвоить ему значение document.getElementById("demo").value
в качестве числа, как только ваш тип input
будет number
, как следующий код
<div id="poster" style="width:35px;height:45px;background-color:blue;"></div>
<input id="demo" type="number" placeholder="0" min="" max="" step="0.1">
<button onclick="myFunction()" type="button">Click Me!</button>
<script>
function myFunction() {
var element = document.getElementById("poster"),
style = window.getComputedStyle(element),
width = style.getPropertyValue('width').match(/\d+/);
document.getElementById("demo").value = width;
}
</script>
, если вы хотите получить номер ширины без единицы, например. 35px
или 35%
получит 35
, вы можете использовать следующий код:
<div id="poster" style="width:35px;height:45px;background-color:blue;"></div>
<input id="demo" type="number" placeholder="0" min="" max="" step="0.1">
<select id="unit" >
<option >none</option>
<option value="%">%</option>
<option value="px">px</option>
</select>
<button onclick="myFunction()" type="button">Click Me!</button>
<script>
function myFunction() {
var element = document.getElementById("poster"),
width = element.style["width"].match(/\d+/),
unit = element.style["width"].match(/[^\d]+/);
document.getElementById("unit").value = unit
document.getElementById("demo").value = width;
}
</script>