Ich habe eine Seite, die 2 Dropdown-Menüs und ein Kontrollkästchen anzeigt. Ich möchte eine Situation, wo, wenn Sie auf das Kontrollkästchen klicken, wird es festzustellen, welcheDurch Klicken auf ein Kontrollkästchen zwischen zwei Dropdown-Liste wechseln
Standard Dropdown die Dropdownlist unten zeigt die Verwendung Dropdown
@Html.DropDownList("ddlprojects", Model.GetProjectInformationActive.ProjectsInfoSelectList, Model.GetProjectInformationActive.SelectedProject, new { @class = "selactive", @name="ddlprojects", @onchange="javascript:GetStatusDate(this.value);"})
, wenn Sie das Kontrollkästchen unter displayallproj das Dropdownlist-Anzeige überprüfen. Dies sollte
@Html.DropDownList("ddlprojects", Model.GetProjectInformationInActive.ProjectsInfoSelectList, Model.GetProjectInformationInActive.SelectedProject, new { @class = "selinactive", @name = "ddlprojects", @onchange = "javascript:GetStatusDate(this.value);" })
hier umgekehrt ist der HTML-Abschnitt
<div id="ProjID">
<label for="SelectProjID">Project:</label>
@Html.DropDownList("ddlprojects", Model.GetProjectInformationActive.ProjectsInfoSelectList, Model.GetProjectInformationActive.SelectedProject, new { @class = "selactive", @name="ddlprojects", @onchange="javascript:GetStatusDate(this.value);"})
@Html.DropDownList("ddlprojects", Model.GetProjectInformationInActive.ProjectsInfoSelectList, Model.GetProjectInformationInActive.SelectedProject, new { @class = "selinactive", @name = "ddlprojects", @onchange = "javascript:GetStatusDate(this.value);" })
<div id="DisplayAllProjects">
<input type="checkbox" value="DisplayAllProj" name="AllProj" id="AllProj">
<label for="SelectAll">Display ALL projects, active and inactive. (Active projects shown by default.)</label>
</div>
</div>
<div id="StatDate">
<label for="SelectStatDate">Status Date:</label>
<select id="ddlstatusdate" name="ddlstatusdate" >Select status date</select>
</div>
Hier ist die Jquery, die dieses Verhalten
//To do
$('#AllProj').click(function() {
if($(this).is(":checked")){
}
else if($(this).is(":not(:checked)")){
}
});
Bitte beachten Sie, dass für jede aktive Dropdownlist steuern sollen, ich bin Verwenden Sie die ID und verwenden Sie sie, um einige andere Informationen zu ziehen
$('#ddlstatusdate').on('change', function() {
var selectedPrjId = $('#ddlprojects').val();
var things = $('#ddlstatusdate').val();
$.get('@Url.Action("GetNoteResult", "Home")', { 'selectedData': things, 'selectedProjectId': selectedPrjId }, function (result) {
$('#ProgressHealth').html(result);
});
});
Problem: Die zwei Dropdown-Liste rendert Daten zu einem beliebigen Zeitpunkt, wenn Sie auf den HTML schauen, so dass mein Change-Ereignis für das ddlstatusdate verwirrt wird und selectedPrjId = "" zurückgibt, da Daten für die erste und zweite Dropdownliste geladen werden auf der Seite.
Wie kann ich dieses Problem lösen, so dass die Daten für die aktive Dropdownliste die einzige ist, die zu irgendeinem Zeitpunkt im HTML wiedergegeben wird.
Vielen Dank. Das kommt jetzt rum. Ich verstehe diese Aussage nicht wirklich $ ('. Ddlprojects'). Nicht (': hidden'); Wo werde ich das hinzufügen? – user2320476
Danke nochmal. Hier ist, was ich getan habe und es funktioniert. Ich habe diese Zeile hinzugefügt. var obj = $ ('. ddlprojects'). nicht (': versteckt'); var selectedPrjId = obj.val(); – user2320476
Ich denke, es war die gleiche Id, die mich vermasselt hat und die .not ('versteckte') Syntax ist sehr mächtig. – user2320476