变量返回NaN值 - 无法找出原因

时间:2013-04-25 10:56:52

标签: javascript

我不得不从许多年前业务中的某个人那里找到老化的短信系统。

它是使用ASP classic构建的,并将一个字符串发送到一个API,然后将其发送出去,所有这些既不在这里,也不在那里。我遇到的问题是没有JS经验,我是SQL开发人员,几年前做过一些ASP Classic(VBScript)。

这段JScript从几个表单框中获取信息,然后将它们放在一个字符串中,然后将其传递给处理页面上的变量以进行文本输出。字段'QValue,Indemnity和Excess'都是数字。 Cover是文本,它正在用'NaN'替换封面文本现在我明白这是'非数字',这正是它的原因,而不是数字,但我想要文本字符串。

以下是相关代码片段:

<script type="text/javascript">
function changeMessageText()
{

var messagetxt = document.getElementById('message').value

var QValue = document.getElementById('QValue').value
var Cover = document.getElementById('Cover').value
var Excess = document.getElementById('Excess').value
var Indem = document.getElementById('Indemnity').value

var messagetxt=messagetxt.replace("[QValue]", + QValue)
var messagetxt=messagetxt.replace("[Cover]", + Cover2)
var messagetxt=messagetxt.replace("[Excess]", + Excess)
var messagetxt=messagetxt.replace("[Indem]", + Indem)

document.getElementById('messageText').innerHTML = messagetxt;

}
</script>

干杯。

3 个答案:

答案 0 :(得分:5)

执行string.replace(searchvalue,newvalue)后,+

之前无需newValue
var messagetxt=messagetxt.replace("[QValue]", QValue)
//cover or cover2 whichever appropriate
var messagetxt=messagetxt.replace("[Cover]",  Cover) 

var messagetxt=messagetxt.replace("[Excess]",  Excess)
var messagetxt=messagetxt.replace("[Indem]",  Indem)

答案 1 :(得分:1)

在替换中使用 Cover2 ,在读取输入值并将其存储在封面变量中是否正常?

这是两个不同的变量,根据您提供的代码,我们只能假设Cover2是用NaN初始化的(可能不是这种情况,可能是复制/粘贴错误)。

答案 2 :(得分:0)

以下是您的操作方法:

var messagetxt = document.getElementById('message').value;

var QValue = document.getElementById('QValue').value
var Cover = document.getElementById('Cover').value

var messagetxt=messagetxt.replace("[QValue]", QValue)
var messagetxt=messagetxt.replace("[Cover]", Cover)

document.getElementById('messagetxt').innerHTML = messagetxt;

以下是一个有效的例子:http://jsfiddle.net/F24cr/

享受