2014-06-17 107 views
0

我有一個網站在一個頁面上有多個表單,我想弄清楚如何使用最接近()來引用一個下拉,這是接近我的提交按鈕。這裏是我的jQuery:使用.closest()與點擊事件按鈕

var subcategory = $().closest('.subcategoryDropdown option:selected').val(); 

在.closest之前,需要引用我的按鈕,沒有一個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">@[email protected]iteria[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> 
} 

這也使用部分視圖的第二個下拉菜單填充基於用戶在第一個下拉選擇的選擇。

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

+0

1:您要引用按鈕單擊處理程序中該行的'$()'? 2:我們需要看你的html。 –

+0

try $(this).closest('。subcategoryDropdown option:selected')。val(); –

+0

對不起傑森,這是我的html。它位於從視圖中調用的函數中。在此之前,這只是一些基本的驗證。 –

回答

1

像這樣的事情?

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

這裏有一個小提琴:http://jsfiddle.net/Niffler/EUFxC/