2012-05-07 6 views
2

私はStruts2を初めて使っていますが、私はjspでセレクタが定義したStruts2タグにアクセスできないjQueryセレクタの問題に一貫して取り組んでいます。jQueryセレクタを使用して、プラグインなしでStruts2要素にアクセスできますか?

カスタムコードやプラグインがなくても統合されていないと思っていますが、私はそれについて明確な内容を見つけることができませんでした。私がstrut2-jQuery pluginページに行ったときには、彼らのfaqでプラグインを使うのが良いと言われましたが、必要なものはありません。

ここに何か不足していますか?要素のstruts2タグがjQueryを使用して選択しようとすると、動作しません。私は、だから私は、ソースの表示を見たとき、私はタグから生成されます通常のHTMLコードを参照してください、私はそれからだった場合は、セレクタを使用して、それらの特定の要素に到達することはできません

$('form').find(':input').change(function() { ... //or 

$('#testbutton').attr('disabled', true); //or 

$('#formName').change(function() { 
      alert("Found form!"); 
    }); 

ような基本的な要素を話していますstruts2タグと、同じjQueryセレクターコードを持つ通常のhtmlタグを比較します。

もう一つの項目は、私はJSPページ上のjQueryを参照するために、このようなものを使用しています:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 
+0

ストラットタグはいつも通常のHTMLコードに変換しますそれは問題ではありません。生成されたHTMLコードをチェックして、セレクタで使用しているIDが生成されたHTMLと同じであるかどうかを確認してください – anu

+0

常に明白です。私は、jspが再コンパイルしていないことと、ランダムに閉じていることとのミックスをしていました});私が新しい機能を追加したとき。私がクリーンビルドとリビルドを行ったとき、変更が働き始めました。 –

答えて

2

HTMLが生成される方法は、クライアント(ブラウザ)に関係なく、クライアントがあります生成されたDOM以外のものは知らない。

IDがある場合、または入力がある場合、jQueryはそれを見つけるでしょう - 私は問題なしでS2のアプリケーションでプレーンjQuery(およびプロトタイプ)を使用しました。

他の何かが間違っています。


編集JSPを表示するには、HTML、およびコンソール出力をレンダリング。

JSP:

<s:form action="simpleForm"> 
    <s:textfield name="fname"/> 
    <s:submit value="Go!"/> 
</s:form> 

レンダリングされたHTML(デフォルト"xhtml"テーマを想定):

<form id="simpleForm" name="simpleForm" action="/simpleForm.action" method="post"> 
    <table class="wwFormTable"> 
    <tr> 
     <td class="tdLabel"></td> 
     <td><input type="text" name="fname" value="" id="simpleForm_fname"/></td> 
    </tr> 

    <tr> 
     <td colspan="2"><div align="right"><input type="submit" id="simpleForm_0" value="Go!"/> 
     </div></td> 
    </tr> 
    </table></form> 

いくつかのコンソール出力:

> $("form") 
[<form id=​"simpleForm" name=​"simpleForm" action=​"/​simpleForm.action" method=​"post">​…​</form>​] 
> $("form").find(":input") 
[<input type=​"text" name=​"fname" value=​"d" id=​"simpleForm_fname">​, 
<input type=​"submit" id=​"simpleForm_0" value=​"Go!">​] 
> $("form").find("input") // Don't need the ":" 
[<input type=​"text" name=​"fname" value=​"d" id=​"simpleForm_fname">​, 
<input type=​"submit" id=​"simpleForm_0" value=​"Go!">​] 
+0

さて、私はそれが何かを見ていないよ?私が投稿した最後のコード例はどうですか?strutsタグのフォームIDを使用している場合は表示しないでください。 –

+0

@JamesDrinkardレンダリングされたHTMLについて何も知らずに、私はちょうど推測しているようです。私はあなたに何を言いたいのか分かりません。クライアントはサーバ側で何が行われたかについては何も知りません。タグだけが問題です。 JSP、レンダリングされたHTML、jQueryコマンドのコンソール出力を組み込むように編集しています。あなたのJSコンソールをチェックし、手動セレクタなどを試してみてください.-しかし、クライアントはHTMLの生成方法を気にしません。また、レンダリングされたHTMLから作成するDOMだけです。 –

+0

デイブ、最新のアップデートを見てください。私はStruts2を使うためにjQueryを間違って参照していると思います。 –

関連する問題