Jquery 使用.closest()和单击事件上的按钮

Jquery 使用.closest()和单击事件上的按钮,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个在一个页面上有多个表单的网站,我正试图弄清楚如何使用closest()引用靠近我的submit按钮的下拉列表。以下是我的jquery: var subcategory = $().closest('.subcategoryDropdown option:selected').val(); 在前面的括号中。它需要引用我的按钮,该按钮没有我可以使用的id(因为有多个按钮是相同的),所以它需要类似于事件触发器,但我真的不知道如何做。这是我的html: @for (int i

我有一个在一个页面上有多个表单的网站,我正试图弄清楚如何使用closest()引用靠近我的submit按钮的下拉列表。以下是我的jquery:

    var subcategory = $().closest('.subcategoryDropdown option:selected').val();
在前面的括号中。它需要引用我的按钮,该按钮没有我可以使用的id(因为有多个按钮是相同的),所以它需要类似于事件触发器,但我真的不知道如何做。这是我的html:

    @for (int i = 0; i < Model.PartOverrideModel.PartCriteria.Count; i++)
    {
<form id="@String.Format("form{0}", Model.PartOverrideModel.PartCriteria[i].PartNumber)" action="">
@Html.HiddenFor(m => m.PartOverrideModel.Manufacturer)
<div>
    <div class="leftSide">
        <div class="mappingSubtitle">@Resources.EzpConsole.Current_Mapping<span class="partNumber">@Model.PartOverrideModel.PartCriteria[i].PartNumber</span></div>
        <div>
            <div class="text">@Resources.EzpConsole.Current_Category</div>
            <div class="modelText">@Model.PartOverrideModel.PartCriteria[i].CategoryKey</div>
        </div>
        <div>
            <div class="text">@Resources.EzpConsole.Current_Subcategory</div>
            <div class="modelText">@Model.PartOverrideModel.PartCriteria[i].SubCategoryKey</div>
        </div>
    </div>
    <div class="rightSide">
        <div class="mappingSubtitle">@Resources.EzpConsole.New_Mappings@Model.PartOverrideModel.PartCriteria[i].PartNumber</div>
        <div>
            <div class="rightText">@Resources.EzpConsole.New_Category</div>
            <div class="mappingDropdowns">
                @Html.DropDownListFor(m => m.PartOverrideModel.SelectedCategory, Html.CreateCategorySelectList(Model.AllCategoryDetails, true, null), new { @class = "dropDown categoryDropdown", onchange = "javascript:ezpConsole.partOverride.showSubcategoryDropdown();" })
            </div>
        </div>
        <div>
            <div class="rightText">@Resources.EzpConsole.New_Subcategory</div>
            <span class="mappingDropdowns" id="subcategoryDropdownPlaceholder">
                @Html.DropDownListFor(m => m.PartOverrideModel.SelectedCategory, Html.CreateCategorySelectList(Model.AllCategoryDetails, true, null), new { @class = "dropDown", @disabled = "disabled" })
            </span>
            <div class="lowerButton">
                <a class="standardWhiteButton"  onclick="javascript:ezpConsole.partOverride.updateParts();"
                    href="javascript:void();">@Resources.EzpConsole.Submit</a></div>
        </div>
    </div>
    <div class="divider">
    </div>
</div>
</form>
}
@for(int i=0;im.PartOverrideModel.Manufacturer)
@Resources.EzpConsole.Current_Mapping@Model.PartOverrideModel.PartCriteria[i] .零件号
@Resources.EzpConsole.Current_类别
@Model.PartOverrideModel.PartCriteria[i].CategoryKey
@Resources.EzpConsole.Current_子类别
@Model.PartOverrideModel.PartCriteria[i].子类别键
@Resources.EzpConsole.New_Mappings@Model.PartOverrideModel.PartCriteria[i] .零件号
@Resources.EzpConsole.New_类别
@Html.DropDownListFor(m=>m.PartOverrideModel.SelectedCategory,Html.CreateCategorySelectList(Model.AllCategoryDetails,true,null),新建{@class=“dropDown CategorHydropdown”,onchange=“javascript:ezpConsole.partOverride.showSubcategoryDropdown();”)
@Resources.EzpConsole.New_子类别
@Html.DropDownListFor(m=>m.PartOverrideModel.SelectedCategory,Html.CreateCategorySelectList(Model.AllCategoryDetails,true,null),new{@class=“dropDown”,@disabled=“disabled”})
}
这还使用部分视图作为第二个下拉列表,该下拉列表根据用户在第一个下拉列表中所做的选择填充

    <div>
   @Html.DropDownListFor(m => m.PartOverrideModel.SelectedCategory, Html.CreateCategorySelectList(Model.AllCategoryDetails, false, (int)ViewBag.CategoryID), new { @class = "dropDown subcategoryDropdown"})

@Html.DropDownListFor(m=>m.PartOverrideModel.SelectedCategory,Html.CreateCategorySelectList(Model.AllCategoryDetails,false,(int)ViewBag.CategoryID),新的{@class=“dropDown subcategoryDropdown”})
像这样的事

$('input[type=submit]').click(function() {
    var subcategory = $(this).closest('form').find('.subcategoryDropdown option:selected').val();
    // do something
});

这里有一个小提琴:

1:这一行是否在单击处理程序中,用于在
$()
中引用的按钮?2:我们需要查看您的html.try$(this).closest('.subcategory下拉选项:selected').val();对不起,杰森,这是我的html。它位于从视图调用的函数中。在这之前只是一些基本的验证。@MaxFrazier哪里是.subcategory下拉列表??在我的窗体视图中是一个类。