jQuery DOM以数字形式读取输入值

时间:2019-04-01 13:55:05

标签: javascript jquery html dom

我遇到的问题是,我想读取输入类型=“ range”的输入值。 这适用于普通的JavaScript,但是我现在只能使用JQuery做到这一点。 我已经尝试过的:

currentContext.Response.OutputStream.Dispose();
currentContext.Request.InputStream.Dispose();
currentContext = null;

这是它返回的错误

curValue = $("#radioVolume").val();

[ng]类型“数字”不能分配给类型“字符串”。

现在,我尝试使用以下方法将其转换为数字:

Argument of type 'string | number | string[]' is not assignable to parameter of type 'string'.

在阅读了一些过去的Stack Overflow问题之后,我找到了答案以解决此问题:

curValue = parseInt($'#radioVolume').val()); // and
curValue = parseFloat($'#radioVolume').val());

所有这些解决方案均无效。

//编辑(解决方案):现在可以使用了,我不必将其转换为带有以下内容的数字:curValue = parseFloat($'#radioVolume').val()).toFixed(2);

1 个答案:

答案 0 :(得分:0)

使用DOM值函数将Range元素的值类型定义为字符串https://www.w3schools.com/jsref/prop_range_value.asp(请参见返回值)

请注意,范围<input min=1 max=2 step=0.1 type="range">的min,max和step属性不会更改返回的类型。尽管字符串中表示的值是浮点数(“ 1.1”,“ 1.2”等),它仍然是一个字符串

Range元素的JQuery val()函数将返回整数,字符串或数组:http://api.jquery.com/val/取决于元素,在范围情况下为字符串。

我为您准备了http://jsfiddle.net/j62Lheo8/这个小提琴,用于比较DOM和JQuery选择器范围值的类型。

// HTML

<div id="banner-message">
  <p>The range chaos</p>
  <input id="range-selector" min=1 max=2 step=0.1 type="range"/>
  <span id="range-value">JQ Value</span>
  <span id="range-type"></span>
  <span id="dom-range-value">DOM Value</span>
  <span id="dom-range-type"></span>
</div>

// JS

var banner = $("#banner-message")
var range = $("#range-selector")
var value, type, domvalue, domtype;
// handle click and add class
range.on("change", function(){
 value = $("#range-selector").val()
 type = typeof value

 domvalue = document.getElementById("range-selector").value
 domtype = typeof domvalue

 $("#range-value").text(value)
 $("#range-type").text(type)
 $("#dom-range-value").text(domvalue)
 $("#dom-range-type").text(domtype)

})

因此,基本上,您将需要对字符串内的表示类型进行显式强制。

当range返回的字符串包含整数表示形式时,请使用parseInt()。 当range返回的字符串包含浮点数的表示时,请使用parseFloat()(step是浮点数的示例:step = 0.1)。