3

独自にページを生成する Software AG webMethods IDE で jQuery 機能を使用しようとしています。それに、またはそれで何かをする..

私が使用しているコードは次のとおりです。

if(jQuery.isNumeric(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val()))
{
alert("its a number");
}
else
{
alert("its not a number");
}

txtInputは通常の入力テキストフィールドで、上記のコードはボタンに割り当てられています...そして、テキストフィールドに何を入力しても、常に「数字ではありません」というアラートが表示されます..

また、代わりにこのコードを使用すると..

alert(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val());

...「未定義」(二重引用符なし)というアラートが常に表示されます..

テキスト フィールドの ID を返す式は次のとおりです。

CAF.model("#{activePageBean.clientIds['txtInput']}").id

.. そしてこれは:

jsfwmp147312:defaultForm:txtInput

代わりに、この webMethods 組み込み関数を実行して値を取得すると:

CAF.model("#{activePageBean.clientIds['txtInput']}").getValue();

現在テキストフィールドにある値を返します..

したがって、基本的に何らかの理由でjQueryの関数はページの要素と「接続」できません..

これを診断/解決するにはどうすればよいですか?

編集:

詳しくは:

次のコードを試してみると...

var myId = "jsfwmp147312:defaultForm:txtInput";
var element = document.getElementById(myId);
alert(element.value + "");

..アラートで文字列テキストフィールドの文字列値を取得しますが、問題ありません...しかし、これを試してみると...

var myId = "jsfwmp147312:defaultForm:txtInput";
var val2 = jQuery(myId).val();
alert(val2);

...「undefined」というメッセージ(二重引用符なし)でアラートが表示されます..

4

2 に答える 2

1

これには HTML が必要です。私はあなたのセレクターを本当に理解していません。「ボタンに割り当てられている」と言うので、click.

jQuery(document).on("click", "#clientIds[name=txtInput]", function(){

    v = $(this).val();
    alert(v);

});

全体として、クライアント側のコードとサーバー側のコードは通信しません。サーバー側のコードが HTML を吐き出し、その後クライアント側のコードがそれを処理します。通信するには、ページ リクエストや AJAX などを介してデータを送信する必要があります。

于 2012-03-09T13:17:15.233 に答える
1

問題は次のとおりです。jQueryセレクターで何かを意味するため、他の何かを探していません。

文字列は次のようにする必要がありますjsfwmp147312\:defaultForm\:txtInput

したがって、2つのステップで機能させる必要があります

var myId = CAF.model("#{activePageBean.clientIds['txtInput']}").id.replace(/:/g,"\\:");
var val = jQuery(myId).val();

if (jQuery.isNumeric( val ) {
    alert("its a number");
} else {
    alert("its not a number");
}
于 2012-03-09T13:30:28.533 に答える