- - PR -
JavaScriptでのWebFormの選択のやりかた
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-27 16:17
どう、うまくいっていないのでしょう?VBコードで追加している関数名と、JavaScriptで定義されている関数名が違うようですが、そういうことではなく? | ||||
|
投稿日時: 2003-11-27 16:27
Jittaさん、ありがとうございます。
>Button1.Attributes.Add("OnClick", "CheckTest()") 済みません、書き込みのときに関数名を変えようとして、片方忘れて いました・・・ 両テキストボックスに入力、片方のテキストボックスに入力、入力なし、の 全てにおいてalert("NG")を実行します。 つまり、if文の「両テキストボックスに入力が有る場合」と「TextBox1 < TextBox2」 が正常に処理できていません。 AutoPostoBackを有効にすれば、JavaScriptでのクライアント処理時に、 テキストボックス・サーバコントロールの値が取得できると理解して いるのですが、正しいでしょうか? | ||||
|
投稿日時: 2003-11-27 17:51
function checker() {
var t1 = document.Form1.all.TextBox1.value; var t2 = document.Form1.all.TextBox2.value; if (t1 != "" & t2 != "") { if (t1 < t2) { alert("textbox1 < textbox2"); return true; } else { alert("textbox1 >= textbox2"); return false; } } else { alert("null"); return false; } return false; } いったん変数に受けてやると動きました。なぜ? return true/falseは、それでポストバックが発生しなくなるかなと思ったのですが、無駄でした。 > AutoPostoBackを有効にすれば、JavaScriptでのクライアント処理時に、 > テキストボックス・サーバコントロールの値が取得できると理解して > いるのですが、正しいでしょうか? ここ、意味がわからないのですが、なにのAutoPostBackを有効にするのでしょう?asp:buttonは、規定でtype="submit"なので、必ずポストバックが発生します。 | ||||
|
投稿日時: 2003-11-27 18:25
Jittaさん、ありがとうございました。
Jittaさん作成のコードを元に動作させることができました。 質問なのですが、document.Form1の後、allと付けるのはどういった意味が あるのでしょうか? 引き続き「return false」のときのPostBack制御について調査したいと思います。 >ここ、意味がわからないのですが、なにのAutoPostBackを有効にするのでしょう? >asp:buttonは、規定でtype="submit"なので、必ずポストバックが発生します。 テキストボックスに入力した値は、いったんサーバ上で処理しなければ、 クライアント処理する際に値を取得できないと思いました。 JavaScriptで値を比較するのは、サーバへSubmitされる前だと思いますので、TextChangedイベントでサーバへ値を渡せるように、AutoPostBackを有効に したのですが必要無いみたいですね。 いろいろと間違って理解しているみたいですが、どのあたりを誤認識している のでしょうか? いろいろとお手間をかけまして申し訳ありませんが、ご教授ください。 | ||||
|
投稿日時: 2003-11-27 18:46
> 質問なのですが、document.Form1の後、allと付けるのはどういった意味が
> あるのでしょうか? JavaScriptは今期から始めたので、私もあまり理解していません。今、MSDNで調べたら、使い方間違ってる…。正しくは、 document.all.item(アイテムの名前) document.form1.all.item(アイテムの名前) document.all(ドキュメントに上から出てくる順のインデックス) document.form1.all(フォームに上から出てくる順のインデックス) ですね。と、言うことで、 document.form1.textbox1 になおしておいてください。 document.allは、IEとネスケの判断をするときに使ったような?(ネスケにはallコレクションがない、とか) > 引き続き「return false」のときのPostBack制御について調査したいと思います。 これ、たぶん、無理です。または、htmlコントロールの<input type="button">で作成し、スクリプト中でポストバックを発生させます。私は<asp:button width="0px">なボタンを作成し、これをスクリプト中でクリックしてポストバックさせています。 > いろいろとお手間をかけまして申し訳ありませんが、ご教授ください。 教授できるほどの知識もスキルもないです #やっぱ教職課程は取ってしまうべきだった・・・ | ||||
|
投稿日時: 2003-11-27 19:35
「return false」のときのPostBack制御について、ですが
Button1.Attributes.Add("OnClick", "CheckTest()") を Button1.Attributes.Add("OnClick", "return CheckTest()") にすると、falseのときPostBackしないと思いますよ。 私のところのIE6ではできました。 | ||||
|
投稿日時: 2003-11-27 21:32
Jittaさん、べるさん、ありがとうございます。
私も制御することができました。 "OnClick"を"OnSubmit"でも可で、HTMLのformタグに書くこともできるみたい ですね。 OnClickとOnSubmitは違いますので、どちらが正しいのでしょうかね? ところで、JavaScriptでサーバコントロールを処理する、という点に関連して、 JavaScriptでクライアント処理する際に、テキストボックス(サーバコントロール) に値を入力することは可能でしょうか? 入力文字をチェックし、半角数字以外の入力の場合は"OnKeyDown"で""(空)を 入力したいのですが。 いろいろと教えてもらってばかりで済みませんが、どうぞよろしくお願い致します。 | ||||
|
投稿日時: 2003-11-28 02:25
文字列を消すというのならば例えば
document.Form1.TextBox2.value=""; でできますよ。これをifの中に書けばいいわけですね。 #話題が.netでなくなってきましたが |