2016-04-07 1 views
-1

Es gibt ein Problem beim Veröffentlichen dieses Formulars, wenn JavaScript deaktiviert ist. Natürlich, wenn ich @using (html.beginform()) löschen, behebt es das Problem.mit `@ using (html.beginform())` JavaScript ist deaktiviert?

@using (Html.BeginForm("AddTour", "AdminTour", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 
{ 
    <div class="row"> 
    <div class="form-gro`enter code here`up"> 
    <form id="creation" name="creation" onchange="handleSelect()"> 
    <div class="col-md-6"> 
    @{ 
    List<Airlines> AirlineId = ViewBag.AirlinesId; 
    } 
    <select id="Airline" name="Airline" disabled> 
    <option value="">- انتخاب کنید -</option> 
    @foreach (Airlines c in AirlineId) 
    { 
     <option value="@c.Id">@c.Name</option> 
    } 
    </select> 
    </div> 
    <div class="col-md-6 "> 
    <select id="TravelType" name="TravelType"> 
    <option value="">- انتخاب کنید -</option> 
    <option value="A">1</option> 
    <option value="B">2</option> 
    <option value="C">3</option> 
    </select> 
    </div> 
    </form> 
    <script> 
    function handleSelect() { 
     if (document.getElementById('TravelType').value == 'A') { 
      document.getElementById('Airline').disabled = false; 
     } else { 
      document.getElementById('Airline').disabled = true; 
     } 
    } 
    </script> 
    </div> 
    </div> 
} 

Meiner Meinung nach ist das Problem <form>.

Wie kann ich onchange ="handleSelect()" oder <select> ändern, um den Filter zu wechseln?

+0

'Natürlich, wenn ich @ using löschen (html.beginform()) behebt es das Problem.Sie sollten solche Erklärungen ohne Erklärung vermeiden –

Antwort

1

Sie können Javascript innerhalb <form> Elemente ohne Problem verwenden (vorausgesetzt, Javascript ist aktiviert) und das gleiche gilt für eine generiert mit Html.BeginForm().

Wenn Sie eine Umgebung erwarten, in der Javascript deaktiviert ist, sollten Sie möglicherweise einen Beitrag nach dem Ändern des Filterelements explizit ausführen und die aktualisierte Version (d. H. Mit deaktiviertem Element) anzeigen, um diese Änderungen widerzuspiegeln.

Sie könnten auch in Erwägung ziehen, das Element überhaupt nicht zu deaktivieren und nur die Validierung serverseitig zu behandeln (d. H. Sicherstellen, dass der Benutzer beim Senden des Formulars eine gültige/gültige Kombination ausgewählt hat, falls nicht, Validierungsfehler anzeigen).