2009-06-22 22 views
0

私は、DOMを操作するための多くのJavaScript機能を含むWebフォームを持っています。 これは、AJAXを使用して、要素の非表示、ドロップダウンのカスケード、選択項目への新しい項目の挿入と削除など、私が何をしても返すサービスを呼び出すことによって実現されます。 1つの特定の機能。この関数は、AJAX呼び出しが返す内容に応じてselect要素のデフォルト値を無効にし、設定します。フォームがポストバックされたときにクライアント要素が更新されない

<select id="mySelect2"> 
    <option value="0">Default</option> 
    <option value="foo">Foo</option> 
    <option value="another_foo">Foo 2</option> 
</select> 

グレート:たとえば、のは、私は以下の選択から「foo」を選択し、記録を保存していたとしましょう!今、私のAJAX呼び出しを引き起こしたWebフォームの他の要素を変更しました。返されたデータからは、「デフォルト」を選択してselect要素を無効にする必要があることがわかります。これはうまく動作します。しかし、レコードを再度保存してDBで確認すると、この場合のデフォルト値0は保存されません。レコードは前の選択項目( "foo")に残ります。

あなたが興味があれば、私はこれを達成するには、次のコードを使用して:

  1. はAJAX呼び出し

    $('myElement').change(GetData); 
    
  2. GetDataメソッド

    $.ajax({ 
        type: 'POST', 
        url: 'myUrl', 
        data: "{'id':'" + myIdFromMyElement + "'"}", 
        contentType: 'application/json; charset=utf-8', 
        dataType: 'json', 
        success: OnSuccess, 
        error: OnError 
    }); 
    
  3. は選択を操作バインド戻り値に応じた要素:

    function OnSuccess(data, textStatus) { 
        if (data.d.DisableMySelect2){ 
         $('#mySelect2').val('0'); 
         $('#mySelect2').attr('disabled', 'disabled'); 
        } 
    } 
    

なぜこの出来事はありますか?

EDIT:私のWebフォームが正しく変更された値をアンバインドしませんが、私はRequest.Form["mySelect2"]に行くとき、私は実際に更新された値を見ることができるので、どうやらのク​​ライアント側では何も問題がないことを示し

さらなる調査もの。

答えて

2

disabledというフォーム要素がフォームと共に送信されていないため、これが起こっていると思います。

無効なSELECT要素の選択されたオプションの値を格納するために、AJAX呼び出しを使用してフォーム送信を処理したり、隠し入力を使用することができます。

+0

明らかにあなたは正しいですが、私のWebフォームは値を正しくアンバインドしないが、Request.Formに行くと私のリクエストには更新された値が含まれていることがわかりました。 CMS上の –

+0

スポット。ありがとう。 –

+0

あなたはafgalloを歓迎します。 – CMS

関連する問題