Php 在javasscript的setattribute函数中使用变量
显示非城市名称而不是城市名称。我尝试了以下代码-Php 在javasscript的setattribute函数中使用变量,php,javascript,jquery,html,javascript-events,Php,Javascript,Jquery,Html,Javascript Events,显示非城市名称而不是城市名称。我尝试了以下代码- <script type="text/javascript" language="javascript" > function submitcity(c){ document.getElementById("ct").setAttribute('value',+c);//displaying NoN //document.cityform.submit(); alert(c); }</script> 功能提交(c){
<script type="text/javascript" language="javascript" >
function submitcity(c){
document.getElementById("ct").setAttribute('value',+c);//displaying NoN
//document.cityform.submit();
alert(c);
}</script>
功能提交(c){
document.getElementById(“ct”).setAttribute('value',+c);//显示非
//document.cityform.submit();
警报(c);
}
体内
<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>
从
+c
document.getElementById(“ct”).setAttribute('value',+c)代码>
您试图将强制转换字符串(不表示数字)键入以+
为前缀的数值,因此看到NaN
(不是数字),它应该是:
document.getElementById("ct").setAttribute('value',c);
document.getElementById("ct").setAttribute('value',c);
+
是一个一元运算符,用于将类型转换为数值
请参见
一元加号运算符位于其操作数之前,并计算为其操作数,但如果尚未将其转换为数字,则尝试将其转换为数字。例如,y=+x取x的值并将其赋值给y;也就是说,如果x是3,y将得到值3,x将保留值3;但是如果x是字符串“3”,y也会得到值3。虽然一元否定(-)也可以转换非数字,但一元加号是将某事物转换为数字的最快和首选方式,因为它不对数字执行任何其他操作。它可以转换整数和浮点的字符串表示形式,以及非字符串值true、false和null。支持十进制和十六进制(“0x”-前缀)格式的整数。支持负数(但不支持十六进制)。如果它不能解析特定的值,它将计算为NaN
试试这个
function submitcity(c){
document.getElementById("ct").setAttribute('value',c);//remove + sign before c
//document.cityform.submit();
alert(c);
}
将+
置于值之前将尝试将其转换为数字。你没有传递一个号码。你实际上看到的是NaN
从变量后面删除+
document.getElementById("ct").setAttribute('value',+c);
变成
document.getElementById("ct").setAttribute('value',c);