1

これは私の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");

助言がありますか?ありがとう。

4

1 に答える 1

1

jQuery にタグを付けたので、次のようにします。

$("#id").attr("disabled", true);

$("#id").attr("disabled", false);
于 2013-07-16T21:04:46.220 に答える