アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは、IE7、VISTAで試しています。
エラーもなく動いたのですが、
sClientXとsClientYの値をフォームメールでデータ送信したくて
clientX=<input type="text" id=sClientX><br>
clientY=<input type="text" id=sClientY><br>
という部分を<form>内に入れると

「sClientXはnullまたはオブジェクトではありません」
というエラーが出ます。
エラーの原因はなんでしょうか?

<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--

var sample;
var sClientX;
var sClientY;
var target;
var isDrag=0;
function document_onmousedown(){
isDrag=1;
target=event.srcElement;}
function document_onmousemove(){
if( isDrag ){
target.style.top=event.clientY-8;
target.style.left=event.clientX-8;}
}
function document_onmouseup(){
isDrag=0;
sClientX.value = document.getElementById('sample').style.left;
sClientY.value = document.getElementById('sample').style.top;
}
document.onmouseup = fOnmousemove;
function fOnmousemove()
{
}
//-->
</SCRIPT>
</HEAD>
<BODY onmousemove="document_onmousemove()" onmousedown=
"document_onmousedown()" onmouseup="document_onmouseup()">

<DIV style="position:absolute" id=sample>
このオブジェクトが移動します
</DIV>

<DIV id=text1 style="position:absolute;font-size:24px; cursor:hand">
</DIV>

<form>
clientX=<input type="text" id=sClientX><br>
clientY=<input type="text" id=sClientY><br>
</form>

</BODY>
</HTML>

A 回答 (1件)

紛らわしい命名や参照が原因です。



"sClientX" ってのが、
最初の方の var での定義と、
結果埋め込み用の<input>のidと被っています。

どちらかの名前を変えるか
オブジェクトの参照を省略せずに
document.getElementById('sClientX').value = ~
と、する等の対処で解決すると思います。
    • good
    • 0
この回答へのお礼

早速回答頂きありがとうございます。
試したところ無事うまくいきました。
「var sClientX;
var sClientY;」
は質問内容のように<form>内に入れた後、実行したら「sClientXが宣言されていません」というエラーが出たので、あてずっぽうで入れてみました。そのあと「nullまたはオブジェクトではありません」というエラーでた状態で質問したわけですが意味なかったようですね。

何日間悩んだのですが、質問したらすぐ回答頂き助かりました。ありがとうございました。

お礼日時:2007/10/11 22:05

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