プロが教えるわが家の防犯対策術!

function jump(){
if (point_x != ""){
location.href="new_diary.php?x="+point_x+"&y="+point_y;
} else {
alert ("場所をダブルクリックで指定してください。");
}
}

このような文で、point_x != ""のときは別ページに飛んでくれるのですが、
elseのときにアラートが表示してくれません。
初歩的な質問だと思いますが、宜しくお願いします。

A 回答 (5件)

#4です。

訂正します。

>if (point_x){
これだと point_x == 0 の場合も alert なってしまいます。

if ((point_x) || (point_x == 0)){
location.href="new_diary.php?x="+point_x+"&y="+point_y;
} else {
alert ("場所をダブルクリックで指定してください。");
}
    • good
    • 0

>if (point_x != ""){


こう書くと""(空文字列)かどうかを調べています。
undefined(未定義)や null は "" とは別物ですよ。


if (point_x){
location.href="new_diary.php?x="+point_x+"&y="+point_y;
} else {
alert ("場所をダブルクリックで指定してください。");
}

単にこう書くと "" や undefined や null の場合alertが出ます。


ここで明示的に代入しておく方がプロラム的には良いかも。

if (point) {
point_x = point.x;
point_y = point.y;
}else{
point_x = "";
point_y = "";
}
    • good
    • 0

コードをみて、疑問に思ったんですが、


1.point_y とpoint_x は初期化(point_y=""とか)してますか?
2.Listenerのメソッドの中で、if (point)の行の前にalertでメッセージを出すようにして、座標が取れない操作をした場合、そのメッセージがでますか?
    • good
    • 0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">


<html>
<title>Test</title>
<meta http-equiv="Content-script-Type" content="type">
<script type="text/javascript">
 function jump(){
  if (X != "")
   alert ("X is not null");
  else
   alert ("X is null")
  }  
</script>
<body onload="X='';jump('');X='A';jump('');">
</body>
</html>

さて、どちらもOKです。
だとすれば、X=''に相当する代入文はありますか?

この回答への補足

GoogleMapsAPIを利用し、ダブルクリックした位置が取得されるんですが、
位置が取得されていない状態だとアラート表示させる仕組みなのです。

<script type="text/javascript">
<!--
var map;
function onLoad() {
          ~~省略~~

GEvent.addListener(map, 'click', function(overlay, point) {
if (point) {
point_x = point.x;
point_y = point.y;
}
});
}

function jump(){
if (point_x != ""){
location.href="new_diary.php?x="+point_x+"&y="+point_y;
}else{
location.href="new_diary.php";
}
}
-->

<a href="#" onClick="jump()">ジャンプ</a>

このような感じにしているのですが、位置情報が取得されているときは
別ページにジャンプするのですが、
取得されていない状態では何も反応がないのです。

丸投げっぽい書き方ですみません。
</script>

補足日時:2006/12/21 16:07
    • good
    • 0

alertで文字列を囲んでるのは”じゃなくて’じゃありませんでしたっけ?

この回答への補足

ご回答有難う御座います。

"と'どちらで試してみても実行されませんでした。
また、location.hrefなどを使って試してみましたが、
elseのみ実行されませんでした。

補足日時:2006/12/21 14:34
    • good
    • 0

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