-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 を変換できます。10 進数と 16 進数 ("0x" プレフィックス) の両方の形式の整数がサポートされています。負の数がサポートされています (ただし、16 進数はサポートされていません)。特定の値を解析できない場合、

フィドル

于 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 に答える