JavaScriptでボタンを押すとtextareaに内容が入力されるスクリプトを書いています

しかし、IEでは正常に動作するのですがFirefoxでは動作しません。
ドコが間違っているのでしょうか・・??

以下JavaScriptソース
<script type="text/javascript">
function setMsg(input){
document.console.bt.value += input.txt+"\\n";
}

</script>

以下HTMLソース(textarea)
<form name="console"><textarea name="bt" rows="5" cols="50" ID="str" readonly="readonly" wrap="OFF"></textarea>

以下HTMLソース(ボタン)
<input type= "button" value="送信"
txt="あいうえお" onClick="setMsg(this)">


FFのエラーコンソールには
txt is undefinedとでています。

\\nの部分はPerlでソースを生成しているためエスケープしています

回答の条件
  • 1人2回まで
  • 登録:2008/09/10 03:28:04
  • 終了:2008/09/11 18:09:00

回答(3件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/09/10 08:07:52

ポイント27pt

IE 以外のブラウザでは txt などのもともと HTML の要素にない物は JavaScript から値を取ることができないようです。

なので

<input type= "button" value="送信" onClick="setMsg('あいうえお')">

のようにするか、

function setMsg(input) {
  document.console.bt.value += input.value+"\\n";
}
<button type="button" value="かきくけこ" onClick="setMsg(this)">送信</button>

button 要素を使うとかでどうでしょう。

id:yumutan

回答ありがとうございます。

thisではなく直接値を送信してあげればいいのですね。

2008/09/11 18:06:32
id:sheile No.2

Sheile回答回数45ベストアンサー獲得回数162008/09/10 10:15:46

ポイント27pt

getAttributeを使用すると、新しく追加した属性の値を取得することができます。

function setMsg(input){
    document.console.bt.value += input.getAttribute("txt") + "\\n";
}


以下の環境で動作確認。

Internet Explorer 6.0 SP3

Firefox 3.0.1

Google Chrome 0.2.149.29

id:yumutan

回答ありがとうございます。

getAttributeで指定したら動作しました。

2008/09/11 18:08:27
id:y-kawaz No.3

y-kawaz回答回数1420ベストアンサー獲得回数2252008/09/10 10:47:31

ポイント26pt

this.getAttribute("txt")

id:yumutan

回答ありがとうございます。

2番さんとおなじく

getAttributeで指定したら動作しました。

2008/09/11 18:08:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません