最初に:私はCMSの答えが本当に好きです。ずっと簡単です。しかし、場合には、それが最良の選択肢ではありません...
なぜあなただけのフォームを横断し、フォーム内のすべての<input>
秒間入力をつかみ、それらを可能にし、フォームのonsubmit
イベントに結び付けられjQueryの機能を持っていませんフォームを提出しますか?入力が無効かどうかを知る必要がありますか?入力を有効にすると、ユーザーに関係する方法で視覚的外観が変わるのではないかと心配していますか?
どちらの場合でも、有効にする要素に何かを追加することができます。スタイリングのために、無効な入力に有効な入力と同じ外観を与えるクラスを追加します。あなたがどれが無効になっているかを知る必要がある場合は、ステータスを示す名前または値そのものに何かを追加します。
好奇心の怪しさから、いつ無効な情報が必要なのですか?入力が常に無効になっている場合(ユーザーがそのように設定していないことを意味します)、値を知っていませんか?入力がユーザーによって無効に設定されている場合、そのデータを収集するのはちょっと欺かれていませんか?
"total"フィールドのように値が無効になっていると、jsを介して他の非無効フィールドに基づいて更新されるので、代わりに読み込み専用にすることになります。 CMSへのあなたの応答に基づいて
:
私は唯一の選択ボックスを無効にすることだろうが、あなたがスクリプトに戻されているしたいと思ういくつかのシナリオを想像することができます。私の頭に浮かぶ主なものは、他のオプションがチェックされていると特定の選択ボックスが有効になりますが、サーバースクリプトが空白を埋めるのではなく、選択ボックスのデフォルトを戻すということです。
その場合、非表示の入力と選択ボックスの間にトグルを設定しないでください。両方の入力で値と名前を同じにしますが、有効にすると値と名前を無効にします。このようにして、スクリプトは2つの入力のうちの1つだけを見て、同じ名前を持つのでデータがどこから来たのかわからない。
$('form').submit(function() {
$('[disabled]').each(function(i) {
d_name = $(this).attr("name");
d_val = $(this).val();
$(this).after(
'<input type="hidden" name="' + d_name + '" value="' + d_val + ' />'
);
});
return true;
});
ちょうどあなたが、私はあまりにも概念的なものだと思う場合には、ここでユーザー提出上で実行されます簡単な関数です。どのように各無効な要素を通過し、同じ名前と値を持つ新しい隠し入力をDOMに追加すると、隠された入力が得られ、サーバーサイドスクリプトがすべての入力を一般的に扱えるようになります。
に投稿するときに、フォームがそれらが含まれますので、あなたは、ユーザーが経験したい一連のイベントを説明しますが、再度有効化できフォームを送信する前に入力&を無効にすることができますあなたが解決策を考え出すのを手助けすることができます。物語には何か他のものがなければなりません。それ以外の場合は、選択したボックスを使用する理由はありません。 –
この機能を(OPとは無関係の別のプロジェクトで)欲しい理由の1つがここにあります。利用可能なオプションを動的に読み込むAJAXedウェブサイトがあります。異なるオプションを選択できない場合、コントロールを1つ選択して無効にします。これは、設定が必要なので、サーバーにポストバックする必要があります。 (理論的には、理論的には、バックエンドにどのような価値があるのか理解することができましたが、ロジックはすでに完了しているので、複雑にする必要はありません) –
これは死んだ会話だと思いますが、だから、私はそれを打ち切った。 –