MVC - dropdownlist onchange nie abgefeuert jquery
Ich bin kämpfen, um dropdown-Liste onchange-Ereignis in jquery. Bei der Auswahl Datum vom dropdownlist, andere Textfeld unsichtbar sein sollte und Datum textbox soll, werden sichtbar. Und bei der Auswahl von Status, die anderen Textfelder sollten unsichtbar sein und der status der dropdownlist angezeigt werden soll. Es passiert nichts. Schauen Sie bitte in meinem code, was ich falsch mache. Ihre Hilfe bedeutet eine Menge.
_Layout.cshtml
<head>
<script type="text/javascript">
$(function () {
$('#categorie').on('change', function () {
if ($(this).val() == "Date") {
$('#keyword').hide(); //invisible
$('#txtcalendar').show();
} else if ($(this).val() == "Status"){
$('#keyword').hide(); //invisible
$('#txtcalendar ').hide();
$('#tmstatus ').show();
}
.
.
.
});
});
</script>
</head>
Index.cshtml
@Html.DropDownList("categorie", new SelectList(new[]
{
"All", "Id", "Status",
"Vendor", "Date"
}) as SelectList)
<p> Keyword: @Html.TextBox("keyword") <input id="Submit" type="submit" value="Search" /> </p>
<p>Calendar @Html.TextBox("txtcalendar", new {}, new { @class = "myclass", style = "display:none;" })</p>
@Html.DropDownList("tmstatus", new SelectList(new[]
{
"Success", "Pending", "Error",
}) as SelectList)
- Bitte geben Sie in Ihrer Frage deutlich, welche Elemente werden ausgeblendet, wenn "Datum" und "Status" ausgewählt werden. Haben Sie eine Skript-Referenz auf die jquery-Bibliothek? Für einen start, stellen Sie sicher, dass die ändern-Funktion aufgerufen wird, durch hinzufügen der alert("test") als der erste Anruf.
- wo bekomme ich diese passende jquery-Bibliothek?
- jquery wird automatisch enthalten, wenn Sie erstellen ein MVC-Projekt. Nur sicherstellen, dass code, der jquery verwendet, unter dem import des eigentlichen jquery.js Datei.
- "Es passiert nichts" was meinst du mit es ? dein jquery nicht funktioniert oder jquery arbeiten, aber die Sicht ist nicht die Verwaltung richtig ? Denn ich habe dein code scheint zu funktionieren gut, außer Kontrolle, die Sichtbarkeit ist nicht ordnungsgemäß verwaltet.
- Haben Sie einen Blick auf meine Antwort. Kann sein, es wird Ihnen helfen, Ihr problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrer Anwendung, Gehen Sie zu app_start\BundleConfig.cs und in RegisterBundles Methode überprüfen, dass die Bündelung von Jquery registriert wurde oder nicht. Es sollte Hinzugefügt haben-bundle für jquery-wie unten erwähnt :
Wenn Sie es nicht ist in RegisterBundles Methode fügen Sie es. Und gehen wie folgt vor :
Hinzufügen @Scripts.Render("~/bundles/jquery") vor dem Ende des head-tag. In meinem Beispiel-Anwendung, die aussieht wie unten erwähnt:
Schneiden Sie Ihre javascript-code, der dropdownlist-änderung von _Layout.cshtml
Meine Index.cshtml Seite sieht so aus :
Versuchen, indem Sie Ihr Skript in einem auf fertig am unteren Rand Ihrer Seite
Nicht setzen Ihr Drehbuch in die
<head>
- tag, sondern setzen es niedriger in der layout-Seite. Kurz vor der</body>
tag finden SieSetzen Sie Ihr Skript, dass wie diese: