これは単純な問題のようですが、これまでのところ、私はほぼすべてのターンで妨害されてきました。
複数の選択から返されるIDのリストを使用して、jqueryとjsonを使用してユーザーインターフェイスを動的に構築しています。そのインターフェースの一部には、次のように動的に作成されるユーザーの位置合わせが含まれています。
$('<textarea>').attr({
'rows': '5',
'cols': '50',
'name': appId,
'id': 'AppJust' + appId}).appendTo('#contentColumn>#AppPanel' + appId);
さらにその過程で、私は次のコードを持っています:
var userJustification = $('textarea[name=' + appId + ']').val() ;
FFでは、アラートuserJustification
を送信すると、textareaに入力されたテキストが表示されます。
IEでは、アラートuserJustification
を出すとundefined
。
私もvar userJustification = $('textarea[name=' + appId + ']').attr('value') ;
まったく同じ結果で試しました。
私が完全に変更した場合:
var userJustification = $('textarea[name=' + appId + ']').val() ;
に:
var userJustification = $('textarea#AppJust' + appId).val() ;
できます...
私の質問は:
名前アプローチがIEではなくFFで機能するのはなぜですか?
編集
スコットが投稿した情報を使用して、私は興味をそそられ、コードを少しいじくり回しました。
var userJustification = $('textarea[name=' + appId + ']').val() ;
しかし、それでも私の環境(IE7)では機能しません...すべての目的と目的が適切に機能するため、理由や方法がわかりません。スコットのフィドルはこれを証明しています。
したがって、正当な理由もなく(実際には偶然に)コードに小さな変更を加えました:
var userJustification = $('textarea[name = ' + appId + ']').val() ;
(セレクター内の「=」の前後のスペースに注意してください)
そしてそれは機能します...最初はappIdが整数であることに関係があると思いました...しかし、フィドルでも「One」を25に変更すると...それでも正しく機能します。
FFで検証して、どのようにレンダリングされているかを確認しました。これは、作成時にテキスト領域がどのように表示されるかの例です...異常なことは何もありません。
<textarea id="AppJust40" rows="5" cols="50" name="40"></textarea>
ページ自体のレンダリング方法と関係があるのでしょうか。Apacheサーバー上のApexアプリケーション????