まだ、JavaScriptをはじめて間もないのですが、JavaScriptの変数名についてどなたか教えてください。
それは、変数名で例えば
function SUM(){
if(!isNaN(document.sum.text1.value).....
とあった場合に、「text1」というところに、2バイト系文字の漢字を使いたいのですが、なにか方法はないでしょうか?どんなに無理やりでもかまいません。よろしくお願いします。
それは、HTMLの<input type="text" name="名前">と使っており、変数名をどうしても漢字にしたいためです。

A 回答 (3件)

変数名に2バイト文字は使えないと考えた方がいいでしょう。


どんなに無理やりでも・・・と仰るなら、document.sum.名前.valueとすればいいだけです。ですが、それを実行すればエラーが出るはずです。これ以外に方法はありませんので、無理矢やりでも構わないのであれば、そのまま置いておくしかないと思いますよ。

因みに上のソースは先程、私が書いたものだと思うのですが、text1は変数ではありませんよ。
    • good
    • 0
この回答へのお礼

重ね重ねありがとうございます。
てっきり、変数かと思っていました・・・まだまだ勉強不足です(^^;)
私自身のデータベースの構築ならいいのですが、なにせ会社のですから、2バイト系文字はあきらめました。いろいろとありがとうございます。
この場をお借りして、皆様にもお礼申し上げます。
これからも、よろしくお願いいたします。

お礼日時:2001/06/14 18:36

2バイト文字は使用してはいけません。



 いちおう、仕様的には、出来る事になっているのですが、ブラウザによっては動作が異なりますので、
 OSとブラウザ固定なら、問題なく動くのですが...。他のブラウザではエラーがでたいします。

 そうならないようにするのには、2バイト文字を使用しない様にする必要があります。
    • good
    • 0

 私も同様の経験がありましたが、漢字ではどうも上手くいかないようでした。


 HTMLの<input type="text" name="名前">の「名前」の部分を「name」とおいて変数にすればすぐに動きましたが、アルファベットでわかりやすく変数名を付けるのが早いと思います。
 ご希望に回答じゃなくてすみませんが(^-^;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qtype="text/javascript"

type="text/javascript"とかtype="text/css"を全く書いていないのですが、不都合はありますでしょうか

Aベストアンサー

勧告で決まっていようとどうであろうとそんなものは一切関係がありません。
ブラウザで動くかどうかが最も重要なことであり、それがすべてです。
逆に勧告で定められているからといって何でも使っていいかといえばそんなはずもなく
ブラウザが対応していないものも数多く存在し、そのようなものは使うべきではありません。

「text/javascript」等を書かなかったからといって動かないという現実問題を私は聞いたことがありません。
また、勧告に厳密なブラウザを作ってしまえば現実問題として多くのサイトで正常に動かなくなるため
そんな馬鹿な実装をすることも考えにくいです。

現実的な視点を踏まえ常識的観点から回答すれば、
「必要ない」「なくていい」「不都合は生じない」と言い切っていいと思います。

Q【javascript】prototypeを使って宣言したfunctionでthis.の値が取れない

以下HTMLは開いた時に'aaa'がアラートされるつもりで作りました。

※行頭は全角スペースです。
<html>
<head>
<script type="text/javascript"><!--
function hoge(){
 this.val ='aaa';
};
hoge.prototype.func = function(){
 alert(this.val);
};
h = new hoge();
if(window.addEventListener){
 window.addEventListener('load', h.func, false);
}else{
 window.attachEvent('onload', h.func);
}
//--></script>
</head>
<body>
</body>
</html>

結果は、undifindがアラートされました。
alert(this.val); を alert(h.val); とベタに記述すれば回避できますが、ちょっと違和感を感じます。

このような場合、どのような記述がベターなのでしょうか?

以下HTMLは開いた時に'aaa'がアラートされるつもりで作りました。

※行頭は全角スペースです。
<html>
<head>
<script type="text/javascript"><!--
function hoge(){
 this.val ='aaa';
};
hoge.prototype.func = function(){
 alert(this.val);
};
h = new hoge();
if(window.addEventListener){
 window.addEventListener('load', h.func, false);
}else{
 window.attachEvent('onload', h.func);
}
//--></script>
</head>
<body>
</body>
</html>

結果は、undifindがアラートさ...続きを読む

Aベストアンサー

----------Sample----------
function objA(){
 this.val ='objA';
}
objA.prototype.sayval = function(){
 alert(this.val);
};
var A = new objA();
A.sayval(); //(1): 'objA'

var objA_sayval = A.sayval;
objA_sayval(); //(2): undefined

var B = {sayval:objA_sayval, val:'objB'};
B.sayval(); //(3): 'objB'

//引数を実行するだけの関数。
function run_func(f){ f(); }

run_func(objA_sayval); //(4): undefined
run_func(A.sayval); //(5): undefined

run_func(function(){A.sayval();}) //(6): 'objA'
--------Sample End--------

(1) 期待通り'objA'がアラートされる。
(2) 関数sayvalがAから切り離されるのでundefinedになってしまう。
(3) 関数sayvalがBと結びつくので'objB'がアラートされる。
 つまり .sayval の左のオブジェクトが関数sayval内でのthisになる。
(4) (2)と同じ理由でundefinedになってしまう。
(5) (4)と同じ理由でundefinedになってしまう。
 EventListenerに渡した時うまくいかないのもこのため。
(6) A.sayval();を実行するだけの関数を作ってrun_funcに渡すと期待通り'objA'がアラートされる。


今回の場合(6)の様にすればうまくいくと思いますが、
場合によってはもう一工夫必要な場合もあります。
([参考]の1つめなど)

[参考]
DOMのJavaScriptイベントハンドラは引数が固定されている、という制限を回避する方法 - IT-Walker on hatena
http://d.hatena.ne.jp/Syunpei/20070605/1181035316
prototype.jsのbindを理解する - cloned.log
http://d.hatena.ne.jp/cloned/20070301

----------Sample----------
function objA(){
 this.val ='objA';
}
objA.prototype.sayval = function(){
 alert(this.val);
};
var A = new objA();
A.sayval(); //(1): 'objA'

var objA_sayval = A.sayval;
objA_sayval(); //(2): undefined

var B = {sayval:objA_sayval, val:'objB'};
B.sayval(); //(3): 'objB'

//引数を実行するだけの関数。
function run_func(f){ f(); }

run_func(objA_sayval); //(4): undefined
run_func(A.sayval); //(5): undefined

run_func(functio...続きを読む

QjavascriptのisNaNについて。

javascriptのisNaNの意味について教えてください。

数値のときはfalseを返し数値以外ののときはtrueを返すのはわかるのですがそれで数値以外がテキストボックスに入力された場合の判定に使いたいのですがどうしたらいいでしょうか?

if(isNaN(frm_txt){

}

上のようにやったらどうなるのでしょうか?

ご回答よろしくお願いします。

Aベストアンサー

>if(isNaN(frm_txt){
>どうなるのでしょうか?
やればわかると思うんですけど。丸括弧の数が合ってないので動きません。

まあそれはともかく、isNaNですからfrm_txtが数値じゃない場合だけ{}の中の処理を行います。
ちなみにisNaNは数値だけでなく「数字」でもfalseになるので注意してください。
isNaN(3) //=>false
isNaN("5") //=>false

Qjavascriptの変数名について

javascriptの初心者なのですがよろしくお願いします。

<script type="text/javascript">
var name = ["あだち","いのうえ","うえだ","えんどう","おおの"]

for(i=0; i<name.length; i++){
document.write(name[i] + "<br />")
}
</script>

と書いたら、




,




,



,




,




と縦に表示されてしまいます。。
変数名をnamaeとかに変更すると、

あだち
いのうえ
うえだ
えんどう
おおの

と希望通りのかたちになるのですが、「name」は使ってはいけないルールでしたでしょうか。
予約語でもないようですし。。分からなくて質問をさせていただきました。

どなたかご教示お願いいたします><

Aベストアンサー

Chromeの場合、「name」という名前を使うと意図しない動作になる事があるようです。(window.nameと干渉してるのかな?)
IEなどでは、どちらの場合も正しく動作しますね。

参考までに、
Chrome上でnameという名前にした場合、"あだち,いのうえ,うえだ,えんどう,おおの" という1つの文字列に変換されています。
name1など他の名前にすると、 ["あだち", "いのうえ", "うえだ", "えんどう", "おおの"] という状態で格納されています。


細かい原因は分かりませんが、とりあえずnameという名前を使うのはやめておいた方が良さそうですね。

QJavascriptで変数名を表示するにはどうすれば良いですか?

Javascriptで変数名を表示するにはどうすれば良いですか?PHPではprintとかechoで出ますよね?初心者です教えてください

Aベストアンサー

>javascriptで変数名を表示する方法はないと思います。
window のプロパティってな~んだ?
そして、プロパティは、
for(prop in window){
alert("name:" + prop + ",value:"+ window[prop]);
}
してみたらどうなる?


人気Q&Aランキング

おすすめ情報