これは私の2番目の投稿にすぎないと思うので、ここに行きます。クレジット カードを管理する HTML フォームに取り組んでいます。フォームには、送信時にすべての検証などを行う JavaScript ページがあります。フォームの郵便番号フィールドには、郵便番号をデータベースに照会して都市/国フィールドに入力する onblur アクションがあります。データベースでは、郵便番号に対して複数の場所が設定されている場合があり、フローティング div が表示され、ユーザーは使用する住所を選択できます。
実行すると、最初に次の関数でフォームのすべてのフィールドを無効にします。
for(f=0;f<document.forms.length;f++)
{
for(i=0;i<document.forms[f].elements.length;i++)
{
if (document.forms[f].elements[i].disabled==true)
keepDisabled += document.forms[f].name + document.forms[f].elements[i].name + "^";
document.forms[f].elements[i].disabled=true;
}
}
次に、ユーザーがアドレスを選択すると、この部分ですべてのフィールドが有効になります。
for(f=0;f<document.forms.length;f++)
{
for(i=0;i<document.forms[f].elements.length;i++)
{
if (keepDisabled.indexOf("^"+document.forms[f].name+document.forms[f].elements[i].name+"^") == -1)
document.forms[f].elements[i].disbaled=true;
}
}
したがって、keepDisabled 変数内のすべての要素について、disabled = true をスキップする必要があります。奇妙なことに、FireFox/Chrome では問題なく動作しますが、IE ではフィールドが半有効化されます。無効化フィールドはグレーアウトされなくなり、入力/テキスト フィールドは編集できなくなりますが、それでも問題ありません。また、選択はダブルクリックでのみ有効になります。
また、これらの無効化コードを使用してみました:
document.forms[f].elements[i].prop("disabled", "disabled");
document.forms[f].elements[i].attribute("disabled, "disabled");
助言がありますか?ありがとう。