2010-11-18 4 views
0

私はストラットを使用しています。私のActionFormにはArrayListが設定されています。ボタンクリックでjQueryのコントローラーがActionFormを送信するJSPから配列にアクセスするにはどうすればいいですか?これは、配列の要素をループすることができるようにするためです。私はこのようなものを推測するが、それは暗闇の中で刺す(これはうまくいかない)。リクエストで送信された変数にjQuery経由でアクセスするにはどうすればよいですか?

$('myButton').click(function(){ 
    var myArrayToLoopThrough = $('myForm.myArray'); 
    for(){ 
     //looping stuff 
    } 
} 

答えて

0

jQueryは、JSPで生成されたHTMLで動作します。

Firefox用のFirebugのようなツールを使用して、ブラウザで生成されたHTMLを見てください。

次に、jQueryを使用してHTML要素を選択して反復処理できます。 $(".class")

を選択 HTMLタグによって:$("p")または$("span")

クラスによって $("#id")

を選択:

はIDを選択します。ここでは最も有用なものの基本的な構文は次のとおりです

選択範囲を反復する

$(...something...).each(function(){ 
    // this is the DOM element 
    // $(this) is a jQuery object containing the DOM element 
}); 

Official jQuery documentation on selectors


ご意見をもとにEDIT

を、あなたの代わりに生成されたHTMLのサーバーオブジェクトと通信する方法を探しているように見えます。

Javascript(jQueryはJavascriptで書かれています)は、生成されたHTMLとのみ対話できるWebブラウザ言語です。 Javaオブジェクトはブラウザに送信されません。

サーバーからデータを取得する必要がある場合は、それらのデータを取得するために新しいHTTP要求が必要です。これは、AJAX methodsを使用してjQueryで実行できます。

+0

申し訳ありません。私の配列にはアクセスするためのIDがありません。それを保持するオブジェクトからの単なるゲッター。どうやってゲッターにアクセスできますか?それは、var array = $( 'myForm。getArray() '); – edwardmlyte

+0

あなたのように聞こえます var array = $(this).closest( 'form')。serializeArray() –

+0

私はアクセスしたいHTMLフォームオブジェクトではありません。私がアクセスしたいStrutsフォーム。私は元の質問が誤解を招いていたと思います。 – edwardmlyte

0

.serializeArray()をチェックしてください。フォームからすべてのデータを素敵なオブジェクトにして、データで必要なことをすることができます。

jQuery .serializeArray() Documentation

var data = $('#form-id').serializeArray(); 

は今、あなたはdataループスルーをすることができます。キーはnamevalueです。

0

これはあなたが探しているものですか?

$('.myButton').click(function(e) { 
    var data = $(this).closest('form').serializeArray(); 
    for(var i = 0; i < data.length; i++) { 
     var field = data[i]; 
     console.log(field.name + '=>' + field.value); 
    } 
}); 
0
+0

いいえ、私の質問はあまり語られていないと思います。私はHTMLフォームにアクセスする必要はありません。ストラットの場合、アクションとフォームがあります。フォームはgetterとsetterを持つ単なるBeanです。私はjspのHTMLではなく、そのフォームのゲッターにアクセスしたいと思います。 – edwardmlyte

関連する問題