2009-08-16 6 views
31

私はWebフォームの定義された動作が無効なフィールドを送信しないことを知っています...しかし、それは私が望む定義ではありません。私はフォームを投稿するためにajaxを使いたいと思っています。たとえそれが無効になっていても、すべてのフィールドを取得したいのです。フィールドを「無効にする」ようにする回避策を構築したくない、またはフィールドを有効にする場所をハックする必要があります。submit disabled fields

無効なフィールドを取得してDOMやグラブ値を移動しているときに、ajaxSubmit()またはserialize()することは可能ですか?またはこれを行うことができる別のシリアル化プラグインがありますか?または誰かが私がこれらのプラグインの1つを動作させるために作ることができるモードを持っていますか?

または私はそれをハックするのですか?

+2

に投稿するときに、フォームがそれらが含まれますので、あなたは、ユーザーが経験したい一連のイベントを説明しますが、再度有効化できフォームを送信する前に入力&を無効にすることができますあなたが解決策を考え出すのを手助けすることができます。物語には何か他のものがなければなりません。それ以外の場合は、選択したボックスを使用する理由はありません。 –

+2

この機能を(OPとは無関係の別のプロジェクトで)欲しい理由の1つがここにあります。利用可能なオプションを動的に読み込むAJAXedウェブサイトがあります。異なるオプションを選択できない場合、コントロールを1つ選択して無効にします。これは、設定が必要なので、サーバーにポストバックする必要があります。 (理論的には、理論的には、バックエンドにどのような価値があるのか​​理解することができましたが、ロジックはすでに完了しているので、複雑にする必要はありません) –

+0

これは死んだ会話だと思いますが、だから、私はそれを打ち切った。 –

答えて

33

フィールドをreadonlyにすることができます。これにより、コントロールの値が変更できなくなります。

編集:

(function ($) { 
    $.fn.serializeDisabled = function() { 
    var obj = {}; 

    $(':disabled[name]', this).each(function() { 
     obj[this.name] = $(this).val(); 
    }); 
    return $.param(obj); 
    } 
})(jQuery); 
:あなたは簡単にname属性を持つ無効フォーム要素を反復し、シリアライズされた文字列を生成するために、最後にjQuery.param機能を使用して、機能「をserializeDisabled」書くことができ
+8