テーブルのデータを取得しテキストに貼り付けるには?

[上に] [前に] [次に]
ばーばぱぱ 1999/05/26(水) 15:57:08
ボタンが押された時、選択されているテーブルのセルの内容が
テキストボックスにコピーされるという様な処理をしたいの
ですが、どなたかサンプルをいただけないでしょうか?
また、defaultValueを使うのでしょうか?

ばーばぱぱ 1999/05/27(木) 17:18:42
<TR>のbackgroundColorがyellowのものを見つけて、
<TD>の内容をそれぞれのテキストに表示する処理
なんですけど、どなたか助言お願いします。


Nobu3 1999/05/27(木) 17:59:51
前の質問と関連してるんですね・・・
そういう場合は、解決してからの方が手間がかかりませんね。

スクリプトは、
function txcopy(){
cnt=0;
for(i=0;i<document.all.length;i++){
if((document.all[i].tagName=='TD')&&(document.all[i].parentElement.style.backgroundColor=='blue')){
document.fm1.elements[cnt].value=document.all[i].innerHTML;
cnt++;
}
}
}

ボディは、
<form name=fm1>
<input type=text><input type=text><input type=text><br>
<input type=button onclick="txcopy()">
</form>

こんな感じでしょうか?
スクリプトを見ればわかるでしょうが、かなり手抜きです。
<td>は3つまでじゃないと、とんでもないことになります。
もっと処理の早い方法もあるし・・・
あと、これはIE4用なので。その辺はご理解を。


Nobu3 1999/05/27(木) 18:01:04
あぁ・・・
背景は「yellow」でしたっけ・・・
すいません。
でも、わかりますよね。


ばーばぱぱ 1999/05/28(金) 10:18:17
Nobu3さんいつもありがとうございます。
たびたびすみませんが、このセルの内容は、このテキストに
というようなことはできますか?
また、上のスクリプトで、どこでテキストの場所を指定するのですか?
document.fm1.elements[cnt].valueのelements[cnt]でしょうか?
さらにdocumentの前にフレームの指定はできるのでしょうか?
いろいろ質問してすみませんが、助言よろしくお願いします。

Nobu3 1999/05/28(金) 12:45:04
1.cntは成功するたびに1ずつ増えるので、それによって出力を変更すればできます。

2.elements[cnt]です。それを変更すれば良いです。

3.documentはwindow(frame)の子オブジェクト(?)なので、指定できます。


ばーばぱぱ 1999/05/28(金) 14:39:55
とりあえず、テキストに挿入することができたのですが、
ラジオボタンにチェックを入れることができません。
<TD>の内容によってチェックする場所がかわる様にifを
つかったのですが、うまくいきません。

if(parent.No2.document.all[i++]==" 内"){
parent.No1.document.FORM1.naigai(0).checked=true;}
else{
if(parent.No2.document.all[i]==" 外"){
parent.No1.document.FORM1.naigai(1).checked=true;}
}

どこかおかしな所があたら教えてください。
naigaiはラジオボタンのNameです。


ばーばぱぱ 1999/05/28(金) 14:58:26
すみません。追加質問です。
Nobe3の教えてくれた方法で行ったら、テキストには表示されたのですが、
コンポボックスに表示されないのですが、なぜですか?

Nobu3 1999/05/28(金) 15:14:33
document.all[i++].innerHTMLです。たぶん。

コンボって<select>のことですか?
それなら、<select>ではなく、<option>を直に変更しなくてはいけません。
<option>はvalueではなくtextというプロパティがあるので、そちらで変更できるでしょう。

document.fm1.sl1.options[0].value='最初の値(目に見えない)';
document.fm1.sl1.options[0].text='最初のテキスト(文字列)';


ばーばぱぱ 1999/05/28(金) 16:42:00
教えてくれたとおりにしたのですが、
コンボボックスに表示されません。
もしかして、あらかじめ登録しておかなければいけないのでしょうか。
とりあえず、修正したソースを見てください。
おかしなところがあったら教えてください。

parent.No1.document.FORM1.Yomu.options[0].value=parent.No2.document.all[i++].innerHTML;
parent.No1.document.FORM1.Yomu.options[0].text=parent.No2.document.all[i].innerHTML;

<option>のvalueをtextに変更したのですが、
これで良かったのでしょうか?

Nobu3 1999/05/28(金) 16:59:18
え〜っと・・・
<form>の中身はどうなってます?
スクリプトはあってるようですけど、なんか誤解されてるような気が・・・

<option value="...">は
<option text="...">なんて書いてはダメですよ。
っていうか・・・書いても無視するから関係無いけど・・・

あと、一応確認ですが、<text>ではうまくいってるんですね?


Nobu3 1999/05/28(金) 17:00:48
あ、Yomuって名前は、どのタグにつけてます?


ばーばぱぱ 1999/05/28(金) 17:15:23
Yomuはここにあります。
<SELECT name="Yomu">
<OPTION text="用務">用務</OPTION>

フォームの中身ってこういうことですよね。
<FORM NAME="FORM1">

テキストではうまくいっています。


Nobu3 1999/05/28(金) 17:29:00
あ〜・・・
まず訂正:<text>は<input type=text>です。

1.</select>は書いてないのですか?
2.<form>〜</form>のことです・・・。

うちの環境では、うまくいってますが・・・
そのページは公開できないのですか?
無理なら、スクリプト(特に分岐部分とか)見せてくれません?

あと、<option text="...">はダメだと書きました。


ばーばぱp 1999/05/28(金) 17:36:40
[[解決]]
Nobu3さん、お手数かけました。
<option value="">にしたらできました。
勘違いしていたようです。

</select>は書いてあります。

このページは業務用なので公開できないと思います。
切羽詰まった時、公開するかもしれないので
その時は、助言よろしくお願いします。

Nobu3 1999/05/28(金) 17:36:42
「プロパティ」というのはスクリプトで使う言葉で、HTMLでは使いません。
あと、
><option>はvalueではなくtextというプロパティがあるので、そちらで変更できるでしょう。
これは誤解を招く書き方でした。
valueの他にtextというプロパティがあり、表示される文字列は、textの方です。
と言いたかったんですが・・・苦しい (^^;;;


ばーばぱぱ 1999/05/28(金) 17:39:12
おっと、重なってしまったようですね。
改めて、Nobu3さんありがとうございました。
本当に助かりました。

Nobu3 1999/05/28(金) 17:42:16
2秒差でおそかった・・・

業務用ですか。
いきなりではなく、簡単なサンプルを作ってからのほうが安全ですよ。
そのほうが公開もできるし、解決も速くなるでしょうし。
あと、用語関係は覚えてくださいね。
こっちも話しにくいです(笑)


[上に] [前に] [次に]