人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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でソースを生成しているためエスケープしています

●質問者: yumutan
●カテゴリ:ウェブ制作
✍キーワード:bt Console ff firefox HTML
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● GoldenDawn
●27ポイント

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 要素を使うとかでどうでしょう。

◎質問者からの返答

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

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


2 ● Sheile
●27ポイント

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

◎質問者からの返答

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

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


3 ● y-kawaz
●26ポイント

this.getAttribute("txt")

◎質問者からの返答

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

2番さんとおなじく

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ