2017-11-28 3 views
0

Ich versuche, ausgewählte Option als Dropdown-Auswahlwert in jquery zu binden. Ich mache es nach Bindung Dropdown-Optionen über Json. Nach dem Senden des Formulars kann ich die Dropdown-Optionen nicht auswählen.Kann Dropdown-Wert in Formular nicht festlegen. 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"); 

Wie kann das gemacht werden .. kann mir jemand dabei helfen?

+0

Ändert dieser Code erfolgreich das DOM wie erwartet? Was ist das relevante HTML? Was ist die "Form"? Wie wird es "eingereicht"? Werden die Werte an den Server gesendet? Wo genau tritt das Problem auf? – David

Antwort

0

Können Sie nicht einfach den Wert der Auswahl festlegen?

So etwas wie

$ ('select [name^= "Sprachen"]) val (name).

Sie können auch wie Ihr wählen Sie erhalten diese

$ ("[name = 'Sprachen']") val (name).

Und ich nehme an, Sie erhalten die Daten und wenn es fertig ist, legen Sie den Wert fest. Wenn Sie das Get für die Daten ausführen und das Set sofort ausführen, werden die Daten möglicherweise nicht geladen, bevor Sie versuchen, den Wert festzulegen.

Versucht, dies als Kommentar hinzuzufügen, aber auf der mobilen App erlaubt es mir nur 15 Zeichen?

+0

Ich habe das versucht, aber das funktioniert nicht –

1

Ich habe eine Lösung dafür gefunden. Anstatt den Dropdown-Wert nach dem Binden der Optionen festzulegen, können wir dies tun, während wir die Optionen binden.

Hier ist die Lösung.

$.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) 

        ); 
       } 
      }); 
     }); 

Hier @SelLang ist der Dropdown-Wert nach dem Absenden des Formulars.