我不得不从这个行业的一个人多年前留下的老旧的短信系统开始。
它是使用ASP经典构建的,并将字符串发送到API,然后文本输出,所有这些都不是这里也不是那里。我的问题是没有JS经验,我是一个SQL开发人员,几年前做了一点ASP经典(VBScript)。
这段JScript从几个表单框中获取信息,然后将它们放在一个字符串中,然后将该字符串传递给处理页面上的变量以输出文本。字段'QValue, Indemnity和Excess'都是数字。封面是文本,它将封面文本替换为'NaN',现在我明白这是'Not A Number',这就是它,不是一个数字,但我想要文本字符串。
下面是有问题的代码片段:
<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>
欢呼。
当您做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)
在您读取输入值并将其存储在Cover变量中的替换中使用Cover2是否正常?
这是两个不同的变量,从您提供的代码中,我们只能假设Cover2是用NaN初始化的(可能不是这种情况,可能是复制/粘贴错误)。
方法如下:
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/
享受