- PR -

JavaScriptでのWebFormの選択のやりかた

投稿者投稿内容
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-10-01 17:58
初歩的なことだと思うのですが、分からなくて困っております。
よろしくお願いします。

JavaScriptでは
window.document.form.element
の順に書きます。
例 window.mydocument.myform.mytextbox
ここまでは分かっているのですが、この場合にはelementの要素がINPUTでなければelementに書くことができません。
aspのelementを選択する方法を教えていただきたいです。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-10-02 00:24
どういったものを選択したいのか分かりませんが、エレメントはコレクションなので
document.form.elements
と"s"をつけてやってください。
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-10-02 09:34
何を行いたいのか、具体的なものが書いておらず申し訳ありません。
やりたいことですが、

asp:TextBoxに入力した値を、検索ボタン押下時にasp:CustomValidatorでチェックをしたいのです。
このときに、JavaScriptにてasp:Textboxに入れた値を取得したいのですが、
InptのTextBoxであれば
document.form.elementsで値を取得可能ですが
asp:TextBoxではdocument.form.としてもこのあとにelementsの要素が出てこないので、asp:TextBoxのTextの中身の値をJavaScriptで取得する方法を教えて欲しいのです。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-10-02 09:54
引用:
このときに、JavaScriptにてasp:Textboxに入れた値を取得したいのですが、
InptのTextBoxであれば
document.form.elementsで値を取得可能ですが
asp:TextBoxではdocument.form.としてもこのあとにelementsの要素が出てこないので、asp:TextBoxのTextの中身の値をJavaScriptで取得する方法を教えて欲しいのです。

"出てこない"というのはVisualStudioのIntelliSenseのことを言ってますか?
IntelliSenseも万能ではないので、HTMLに変換される前のソースから全て読み取れるわけではないと思います。
たとえIntelliSenseで出てこなくても、実行時には同じHTMLなのでJavaScript自体は動作すると思います。
document.form.[asp:TextBoxのID].value

[ メッセージ編集済み 編集者: ぴで 編集日時 2003-10-02 09:56 ]
hirasane
常連さん
会議室デビュー日: 2003/10/31
投稿数: 28
投稿日時: 2003-11-26 21:29
こんばんは。hirasaneです。
横から済みません。

引用:


document.form.[asp:TextBoxのID].value




上記ですが、[asp:TextBoxのID]はサーバコントロールでしょうか?
HTMLにJavaScriptを記述する際に、サーバコントロール(例えばテキストボックス)
の値を取得することは可能でしょうか?

どうぞよろしくお願い致します。
一休
常連さん
会議室デビュー日: 2003/11/26
投稿数: 20
投稿日時: 2003-11-26 22:23
ぴでさんに代わって。

サーバーコントロールはサーバ上で処理を行った上で
HTMLとしてクライアントのブラウザへ出力されます。

よって、値を取得することは可能です。

aspxファイルでサーバコントロールTextBoxのIDを「txtbox1」と設定したとしたら、
ブラウザへ出力されるHTMLは
コード:
<input name="txtbox1" type="text" id="txtbox1" …略>


となるためJavaScriptからは
コード:
document.form.txtbox1.value


で取得できるはずです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-27 09:05
引用:

一休さんの書き込み (2003-11-26 22:23) より:

aspxファイルでサーバコントロールTextBoxのIDを「txtbox1」と設定したとしたら、
ブラウザへ出力されるHTMLは
コード:
<input name="txtbox1" type="text" id="txtbox1" …略>


となるためJavaScriptからは
コード:
document.form.txtbox1.value


で取得できるはずです。


補足

 Webユーザページをかましたり、コンテナコントロールの上に置くと、もう少し複雑になってきます。階層は、"_"か、":"が使われています。

 "uu1"というIDのWebユーザページに置いた、"TextBox1"にアクセスするには、
document.form1.uu1_TextBox1
です。name属性が":"で、id属性が"_"かな?
hirasane
常連さん
会議室デビュー日: 2003/10/31
投稿数: 28
投稿日時: 2003-11-27 15:04
一休さん、Jittaさん、初心者な質問にも関わらず、丁寧にお答えいただき
ありがとうございます。
助言を元にいろいろやってみたのですが、どうにも上手くいきません。

以下にコードを簡単に記述させていただきます。
開発はWebアプリをASP.NET+VB.NETで行っています。

----------------------------------------------------
●JavaScript部分
function CompareTest() {
if ((document.Form1.TextBox1.Value != "") && (document.Form1.TextBox2.Value != "")) {
if (document.Form1.TextBox1.Value <= document.Form1.TextBox2.Value)
alert("OK")
else
alert("NG")
}
}

●VB.NET部分
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  If Not Page.IsPostBack Then
  Button1.Attributes.Add("OnClick", "CheckTest()")
End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Server.Transfer("WebForm2.aspx")
End Sub
----------------------------------------------------

Button1をクリックすると2つのテキストボックスの値を比較する
というものですが、テキストボックスのAutoPostBackは有効にしてます。
2つのテキストボックス(サーバ)の値を比較し、「A < B」ならOK、「A > B」
であればNGという処理をクライアント処理で行いたいのですが・・・

ご教授をどうかよろしくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)