7

ユーザーが値を変更/変更できないように、チェックボックスの配列といくつかのフィールドを無効にする必要があるフォームがあります。ただし、フォームを送信すると、無効な要素の POST 値が見つからない/null になります。この問題を起こさずに、自分がやろうとしていることをどのように管理できますか?

現在、次のようにコンテナ div を無効にすることでフィールドを無効にしています。

#unselectable {
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    -webkit-user-select: none;
    cursor:not-allowed; 

}
4

4 に答える 4

26

さて、私が考えることができる3つの解決策があります:

  • プロパティを要素にreadonly追加して作成します。readonly
  • CSS/JavaScript でそれらを無効にします。無効のように色付けし、JavaScript で編集できないようにします。
  • 無効のままにして、送信時に無効を削除します。

好きなのを選びな :)

于 2011-10-18T10:21:06.837 に答える
6

readonly代わりに使用できますがdisabled、ユーザーにとってはほぼ同じです(編集できません)が、要素の値はreadonly送信されませんが、要素は送信されdisabledません。

読み取り専用と無効の間には他にもいくつかの違いがあり、他の問題につながる可能性があることに注意してください。

無効属性

  • 無効なフォーム要素の値は、プロセッサ メソッドに渡されません。W3C はこれを成功した要素と呼んでいます (これは、チェックされていないフォーム チェック ボックスと同様に機能します)。
  • 一部のブラウザは、無効なフォーム要素のデフォルト スタイルをオーバーライドまたは提供する場合があります。(テキストをグレーアウトまたは浮き彫りにする) Internet Explorer 5.5 は特に厄介です。
  • 無効なフォーム要素はフォーカスを受けません。
  • 無効なフォーム要素は、タブ ナビゲーションでスキップされます。

読み取り専用属性

  • すべてのフォーム要素に readonly 属性があるわけではありません。最も注目に値するのは、 、 、および要素には読み取り専用属性がありません (ただし、どちらも属性が無効になっています)。
  • ブラウザーは、フォーム要素が読み取り専用であるというデフォルトのオーバーライドされた視覚的フィードバックを提供しません。(これは問題になる可能性があります…以下を参照してください。)
  • readonly 属性が設定されたフォーム要素は、フォーム プロセッサに渡されます。
  • 読み取り専用フォーム要素はフォーカスを受け取ることができます
  • タブ付きナビゲーションには、読み取り専用のフォーム要素が含まれています。
于 2011-10-18T10:20:41.313 に答える
2

同じデータをあちこちに送信してもあまり意味がありません。

サーバー側に残して、送信時に使用してください。

さらに、それを前提として

ユーザーは値を変更/変更できません。

かなりばかげています。

于 2011-10-18T10:25:36.857 に答える
0

無効にする代わりに「読み取り専用」を使用できます。これにより、必要な効果が得られるはずです

また、javascript を使用してフォームを送信し、さまざまなフィールドを事前に無効化 (有効化:P) して送信することもできます。

于 2011-10-18T10:20:31.550 に答える