Jquery 使用.closest()和单击事件上的按钮
我有一个在一个页面上有多个表单的网站,我正试图弄清楚如何使用closest()引用靠近我的submit按钮的下拉列表。以下是我的jquery: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
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下拉列表??在我的窗体视图中是一个类。