У меня есть два выпадающих меню, одно для категорий, а другое для подкатегорий. У меня есть частичное представление _CreateProject, которое имеет HTML-код для формы публикации для создания нового проекта. У меня есть кнопка, при нажатии которой я хочу, чтобы она отображала форму для создания нового проекта. Однако я хочу, чтобы кнопка «Создать проект» была видна только тогда, когда выбраны категория и подкатегория, и отображала частичную часть _CreateProject только при нажатии кнопки.
Я попытался пометить элементы div как скрытые и затем показатьони с $ (# id) .show (), но div не раскрываются.
Это мои сценарии, и я пытаюсь раскрыть кнопки:
<script>
//Populate SubCategory when Category changes
$(function () {
$("#Category").on("change", function () {
var categoryId = $(this).val();
$("#SubCategory").empty();
$("#SubCategory").append("<option value=''>---Select Subcategory---</option>");
$.getJSON(`?handler=SubCategories&categoryId=${categoryId}`, (data) => {
$.each(data, function (i, item) {
$("#SubCategory").append(`<option value="${item.subCategoryId}">${item.subCategoryName}</option>`);
});
});
});
//try to show #partial on button click
$("#projectButton").click(function () {
$("#partial").show(); //try to reveal partial here
});
$("#SubCategory").on("change", function () {
$("#projectButton").show(); //try to show button here
var SubCategoryId = $(this).val;
$("#ProjectId").empty();
$.getJSON(`?handler=Projects&SubCategory=${SubCategoryId}`, (data) => {
//...
Этокнопка, а также div, содержащий частичное:
<div hidden id="projectButton">
<button type="submit" class="btn btn-default">New Project</button>
</div>
<div id="partial" hidden>
<partial name="_CreateProject"/>
</div>
Категория и подкатегория для справки
<label asp-for="Category">Category: </label>
<select asp-for="Category" asp-items="Model.categorylist">
<option value="">---Select Category---</option>
</select>
<label asp-for="SubCategory">Subcategory:</label>
<select asp-for="SubCategory"><option value="">---Select Subcategory---</option></select>
public void OnGet()
{
categorylist = new SelectList(categoryService.GetCategories(), nameof(Category.CategoryId), nameof(Category.CategoryName));
}
//called by first jQuery
public JsonResult OnGetSubCategories()
{
UserId = Convert.ToInt32(HttpContext.Session.GetString("SessionUserId"));
return new JsonResult(categoryService.GetSubCategories(Category.CategoryId, UserId));
}
Что является хорошим способом для достижения этой цели? Я новичок в Jquery, так что, может быть, там может быть какая-то "ошибка"? Спасибо