重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

作成したcleartest()が呼ばれません。
function定義の直後に、alert()を入れてもダイアログボックスの表示ができずに機能しません。
分からないのはfunction定義の直前に、cleartest()を加えるとダイアログボックスの表示が出ますが、ボタンを押下してもクリア処理ができません。
どのような事を考慮すれば良いですか?
また、代替案はどのような方法がございますか?

<!-- htmlファイル -->
<div style="position:absolute; top:100px; left:500px;" title="" runat="server">
<input type="button" style="width:40px; height:20px; font-family:'MS ゴシック'; font-size:9pt; color:#000000; text-align:center;" tabindex="1" value="クリア" id="test" onclick="cleartest(1);" runat="server" />
</div>

<div style="position:absolute; top:200px; left:500px;" title="" runat="server">
<input type="button" style="width:40px; height:20px; font-family:'MS ゴシック'; font-size:9pt; color:#000000; text-align:center;" tabindex="1" value="クリア" id="test" onclick="cleartest(2);" runat="server" />
</div>

//jsファイル
cleartest();//一時的に追加
function cleartest(btnNo){

alert("確認");

if(btnNo == 1) {
document.getElementById("TextBox1").value = ""
} else if (btnNo == 2) {
document.getElementById("TextBox2").value = ""
}
}

A 回答 (3件)

微妙な感じですが文法エラーなどで処理が止まっている可能性もあるので


firefoxのfirebugなどでデバッグすることをお勧めします
    • good
    • 0
この回答へのお礼

関数が未定義になっていました。
<INPUT>タグの後に、外部jsファイルを移して解決しました。

お礼日時:2014/04/01 10:23

動くと思いますよ。



具体的にどのように設置しているのかわかりませんが、質問者様が考えていないところに問題があるのかも。

簡略化してテストしました。
(要素にidが同じものがありますが、HTMLの文法違反です)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

<script type="text/javascript">
function cleartest(btnNo){
if(btnNo == 1){
document.getElementById("TextBox1").value = "";
} else if (btnNo == 2) {
document.getElementById("TextBox2").value = "";
}
}
</script>
</head>
<body>

<div>
<textarea id="TextBox1">text1</textarea>
<input type="button" tabindex="1" value="クリア" onclick="cleartest(1);">
</div>

<div>
<textarea id="TextBox2">text2</textarea>
<input type="button" tabindex="2" value="クリア" onclick="cleartest(2);">
</div
</body>
</html>
    • good
    • 0
この回答へのお礼

<INPUT>タグの後に、外部jsファイルを移して解決しました。

お礼日時:2014/04/01 10:17

良く分かりませんが、属性 runat が邪魔な気がします


そもそも指定する必然性がないので、削除してはいかがでしょうか

あと、属性 id が複数の要素で重複しています
あと、属性 title は <input> にあるべきでしょう
あと、属性 tabindex はちゃんと順番を指定するべきです
あと、属性 style が大きすぎるので css 化を検討すべきです
    • good
    • 0

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