-1

显示 NoN 而不是城市名称。我试过以下代码 -

<script type="text/javascript"  language="javascript" >
function submitcity(c){
document.getElementById("ct").setAttribute('value',+c);//displaying NoN
//document.cityform.submit();
alert(c);
}</script>

在体内

<img src="images/reset.jpg" width="80" height="24" onclick="submitcity('bhopal');" />
<form  action="" method="post" name="cityform" style="display:none;">
<input type="hidden" name="city" id="ct" value="" /></form>
4

3 回答 3

5
+c

将 a 放在+值之前将尝试将其转换为数字。你没有传递一个数字。您实际上看到的是NaN.

+从变量后面删除。

document.getElementById("ct").setAttribute('value',+c);

变成

document.getElementById("ct").setAttribute('value',c);
于 2013-07-10T15:31:59.303 回答
3

删除一元加号+c

document.getElementById("ct").setAttribute('value',+c);

您正在尝试将转换字符串(不代表数字)键入为其前缀的数值+,因此看到NaN(不是数字),它应该是:

document.getElementById("ct").setAttribute('value',c);

+是用于将类型转换为数值的一元运算符。

一元加号运算符

一元加号运算符在其操作数之前并计算其操作数,但如果尚未转换为数字,则尝试将其转换为数字。例如,y = +x 获取 x 的值并将其分配给 y;也就是说,如果 x 为 3,则 y 将获得值 3,而 x 将保留值 3;但如果 x 是字符串“3”,y 也将得到值 3。虽然一元否定 (-) 也可以转换非数字,但一元加号是将某物转换为数字的最快和首选方法,因为它不对该号码执行任何其他操作。它可以转换整数和浮点数的字符串表示形式,以及非字符串值 true、false 和 null。支持十进制和十六进制(“0x”前缀)格式的整数。支持负数(虽然不支持十六进制)。如果它无法解析特定值,

小提琴

于 2013-07-10T15:31:21.087 回答
1

尝试这个,

function submitcity(c){
   document.getElementById("ct").setAttribute('value',c);//remove + sign before c
   //document.cityform.submit();
   alert(c);
}
于 2013-07-10T15:31:38.063 回答