2

jsp/html ページを作成しています。このページには 2 つの異なるリンクからアクセスできます。それはMenu1->demo.htmlページであり、Menu2->demo.htmlページ(私の場合はjsp)からです。demo.htmlページには、デフォルトで無効になっているテキストボックスがあります。

<input class="mytextinputtextField" type="text" id="countryOfOrigin"
readonly style="background-color:#DCDCDC"   />

ここで、 menu2 から demo.html ページにアクセスすると、非表示のパラメーターを使用してチェックし、テキスト ボックスを再度有効にして、テキスト ボックスにフォーカスを設定します。

if(document.getElementById("submenu_name").value=="PM")
{
   document.getElementById("countryOfOrigin").focus();
}

フィールドが有効になり、カーソルが表示されますが、テキストを入力してもテキスト ボックスに入力されません。テキストを入力するには、テキスト ボックスをクリックする必要があります。フィールドを無効にして再度有効にしたためだと思います。javascriptからフォーカスイベントのテキストボックスに入力できるように助けてください。私は JQuery を使用しておらず、ブラウザーは IE 6 です。

4

4 に答える 4

0

これを試して :

document.getElementById("countryOfOrigin").removeAttribute('readOnly');

jQueryバージョン:

jQuery('#countryOfOrigin').removeAttr('readOnly');
于 2013-03-04T13:12:00.717 に答える
0

属性を削除しようとしましたか?

document.getElementById("countryOfOrigin").Attributes.Remove("readonly");

また

document.getElementById("countryOfOrigin").removeAttribute("readonly");
于 2013-03-04T13:30:53.157 に答える
0

ご協力ありがとうございました。私は解決策を見つけたか、回避策を言うかもしれません。他の人に役立つかもしれないコードを貼り付けています

if(document.getElementById("submenu_name").value=="PM")
{
 document.getElementById("countryOfOrigin").focus();
 document.getElementById("countryOfOrigin").select();

}
于 2013-03-05T14:08:44.683 に答える
-1

これは非公式の解決策です。 setTimeout() 関数を使用して focus() の実行時間を遅らせる必要があります。

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);

http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/を参照してください。

于 2013-03-04T12:53:11.043 に答える