2017-11-28 4 views
0

jqueryで選択されたオプションをドロップダウンの選択値としてバインドしようとしています。 私はjson経由でドロップダウンオプションをバインドした後にそれをやっています。 フォームの送信後、私はドロップダウンオプションを選択できません。Form Submit MVCでドロップダウンの選択値を設定できません

Binding Dropdown Options: 

$.getJSON('@System.Web.Configuration.WebConfigurationManager.AppSettings["BaseURL"]/Home/GetLanguages', function (authors) { 
       $.each(authors, function (index, author) { 
        $('#ddlLanguages').append(
         $('<option/>') 
          .attr('value', author.LanguageKey) 
          .text(author.LanguageKey) 
        ); 
       }); 
      }); 

jquery to set the value 

$('select[name^="Languages"] option[value='+name+']').attr("selected", "selected"); 

これはどのように行うことができます誰も私にこれを助けることができますか?

+0

このコードは正常にDOMを正常に変更していますか?関連するHTMLとは何ですか? "フォーム"とは何ですか?どのように "提出"されていますか?値はサーバーに送信されていますか?具体的にどこに問題が起きていますか? – David

答えて

0

あなたは単にselectの値を設定できませんでしたか?

何か

のような$( 'を選択し、[名前^ = "言語"])のval(名)。

また、この

$( "[名= '言語']")のval(名)のようなあなたが選択し得ることができます。

私はあなたがデータを取得したと仮定して、あなたが値を設定します。データのgetを実行してすぐにセットを実行すると、値を設定しようとする前にデータがロードされないことがあります。

これをコメントとして追加しようとしましたが、モバイルアプリでは15文字しか使用できません。

+0

私はこれを試しましたが、これは動作していません –

1

解決策が見つかりました。オプションをバインドした後にドロップダウン値を設定する代わりに、オプションをバインドするときにドロップダウン値を設定することができます。

ここに解決策があります。

$.getJSON('@System.Web.Configuration.WebConfigurationManager.AppSettings["BaseURL"]/Home/GetLanguages', function (authors) { 
      $.each(authors, function (index, author) { 
       if ('@SelLang' == author.LanguageKey) 
       { 
        $('#ddlLanguages').append(
         $('<option/>') 
          .attr('value', author.LanguageKey).attr('selected','selected') 
          .text(author.LanguageKey) 

        ); 
       } 
       else{ 
        $('#ddlLanguages').append(
         $('<option/>') 
          .attr('value', author.LanguageKey) 
          .text(author.LanguageKey) 

        ); 
       } 
      }); 
     }); 

ここ@SelLangは、フォームを送信した後、ドロップダウン値です。

関連する問題