表单输入选择返回为数字,而不是字符串,使用javascript

时间:2017-06-09 14:16:03

标签: javascript select input numbers

我有一个 html表单,其中包含大约5个选择输入。每个输入都有一个数字值。选择时,我想将值返回为数字,而不是字符串。示例如下:

<p>Cop <select name="c_palat" id="c_palat">
  <option value=0>0</option>
  <option value=30>1</option>
  <option value=60>2</option>
</select></p>
 <p>Adult <select name="a_palat" id="a_palat">
  <option value=45>1</option>
  <option value=90>2</option>
  <option value=135>3</option>
</select></p></div>

<script>
    var c_palat = document.getElementById("c_palat");
    var c_pal = c_palat.options[c_palat.selectedIndex].value;
    var a_palat = document.getElementById("a_palat");
    var a_pal = a_palat.options[a_palat.selectedIndex].value;

    var x =c_pal + a_pal

    document.getElementById("result").innerHTML = x;
</script>

因此,对于从第一个输入选择选项1(值0)和从第二个输入选择选项1(值45),结果为 045 (字符串),而不是 45 (数)。 感谢您提供的任何帮助。祝你有愉快的一天。

4 个答案:

答案 0 :(得分:2)

尝试使用数字 这会将字符串转换为数字。

<script>
    var c_palat = document.getElementById("c_palat");
    var c_pal = Number(c_palat.options[c_palat.selectedIndex].value);
    var a_palat = document.getElementById("a_palat");
    var a_pal = Number(a_palat.options[a_palat.selectedIndex].value);

    var x =c_pal + a_pal

    document.getElementById("result").innerHTML = x;
</script>

答案 1 :(得分:1)

您可以将值解析为整数。

var a = parseInt("10") + "<br>";
var b = parseInt("10.00") + "<br>";
var c = parseInt("10.33") + "<br>";
var d = parseInt("34 45 66") + "<br>";
var e = parseInt(" 60 ") + "<br>";
var f = parseInt("40 years") + "<br>";
var g = parseInt("He was 40") + "<br>";

var h = parseInt("10", 10)+ "<br>";
var i = parseInt("010")+ "<br>";
var j = parseInt("10", 8)+ "<br>";
var k = parseInt("0x10")+ "<br>";
var l = parseInt("10", 16)+ "<br>";

var n = a + b + c + d + e + f + g + "<br>" + h + i + j + k +l;

输出:

  

10 10 10 34 60 40 NaN 10 10 8 16 16

Source.

答案 2 :(得分:0)

您可以使用parseFloat()。它会将字符串转换为数字。并使用直接方法c_palat.value代替options[c_palat.selectedIndex]

获取所选值

&#13;
&#13;
var c_palat = document.getElementById("c_palat");
var c_pal = parseFloat(c_palat.value);
var a_palat = document.getElementById("a_palat");
var a_pal = parseFloat(a_palat.value);

var x = c_pal + a_pal
console.log(x)
//document.getElementById("result").innerHTML = x;
&#13;
<p>Cop <select name="c_palat" id="c_palat">
  <option value=0>0</option>
  <option value=30>1</option>
  <option value=60>2</option>
</select></p>
<p>Adult <select name="a_palat" id="a_palat">
  <option value=45>1</option>
  <option value=90>2</option>
  <option value=135>3</option>
</select></p>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您可以使用~~(双位按不)将字符串转换为仅整数

var c_palat = ~~(document.getElementById("c_palat").value);
var a_palat = ~~(document.getElementById("a_palat").value);

var x = c_palat + a_palat;
console.log(x);
<p>Cop <select name="c_palat" id="c_palat">
  <option value=0>0</option>
  <option value=30>1</option>
  <option value=60>2</option>
</select></p>
<p>Adult <select name="a_palat" id="a_palat">
  <option value=45>1</option>
  <option value=90>2</option>
  <option value=135>3</option>
</select></p>