调用函数时,拆分功能不起作用

时间:2014-04-26 16:46:28

标签: javascript split

我正在使用Split函数获取选定的选项值并按每个管道分隔符进行拆分。

爆炸[2]的值在输出时正确显示为10.00,但财务功能没有返回值,我的div没有更新新文本。

如果我将爆炸[2]交换到函数中的文字10.00,如下所示:

finance(exploded[0], exploded[1], 10.00, exploded[3]); 

它有效。同样,如果我像这样制作爆炸[2] = 10.00:

var test = 10.00;
finance(exploded[0], exploded[1], test, exploded[3]);

它也有效。我做过蠢事吗?

Javascript

<script type="text/javascript">

$(document).ready(function() {

  $('#finance').change(function() {     
    selected_value = $('#finance').val();
    exploded = selected_value.split('|');
    finance(exploded[0], exploded[1], exploded[2], exploded[3]);    
  });

  function finance(code, order_cost, depost_pc, deposit_val) {
    my_fd_obj = new FinanceDetails(code, order_cost, depost_pc, deposit_val);
    $('#finance_per_month').html(my_fd_obj.m_inst);     
  }

  });

</script>

HTML

<select name='finance' id='finance'>
  <option value="ONIF10|399.00|10.00|39.90">10 Months 0% Finance</option>
  <option value="ONIF18|399.00|10.00|39.90">18 Months 0% Finance</option>
  <option value="ONIF24|399.00|10.00|39.90">24 Months 0% Finance</option>
  <option value="ISIB36-3.9|399.00|10.00|39.90">36 Months 3.9% Finance</option>
</select>

1 个答案:

答案 0 :(得分:1)

在不了解FinanceDetails的情况下无法确定,但exploded[2]10.00之间的区别在于前者是字符串({{ 1}},而不是"10.00")。在99%的情况下,代码会隐式地将字符串强制转换为数字,但又不知道10.00中的内容......

FinanceDetails可能会解决问题。或者只是parseFloat(exploded[2])

我希望你也需要为其他args这样做,如果它们也是数字。