2013-12-09 49 views
0

我有一個是由onclick事件綁定到我的形式,這樣的設置所選的劍道菜單項hiddem表單字段

@(Html.Kendo().Menu() 
    .Name("MenuCreate") 
    .Items(items => 
    { 
     items.Add().Text("<<").Action("Index", "BSfune"); 
     items.Add().Text("New").HtmlAttributes(new{onclick = "getElementById('FormCreate').submit()", @id = "New"}); 
     items.Add().Text("Edit").HtmlAttributes(new { onclick = "getElementById('FormCreate').submit()", @id = "Edit" }); 
    }) 
    .Events(e => e.Select("select")) 
) 

,並在我的形式,我有一個名爲FormmMode

一個隱伏場劍道菜單
@using (Html.BeginForm("Create", "BSfune", FormMethod.Post, new { id = "FormCreate" })) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 
    <div class="form"> 
     <fieldset> 
      <legend>@ViewBag.Title</legend> 
      <div> 
       <div> 
        (My form code) 
       </div>      

       @Html.HiddenFor(model => model.FormMode, new { @id = "FormMode"}) 
       <br /> 
       <br /> 
       <br />   
      </div> 
     </fieldset> 
    </div>  
} 

我想用選定的菜單項文本「新建」或「編輯」設置我的字段窗體(FormMode)。 我注意到onclick覆蓋了選定的事件。所以..這將是這樣的

<script type="text/javascript"> 
$(function() { 
    $('#New').on('click', function() { 
     $("#FormMode").val($(this).text()); 
    }); 
}); 
function select(e) { 
} 

但是,這並不工作.. 在CONTROLER方面我有

public ActionResult Create(CrBSfune p_BSfune) 
    { 
     (...) 
     if (p_BSfune.FormMode == "New") 
      return RedirectToAction("Create"); 
     else 
      return RedirectToAction("Index"); 
    } 

但我p_BSfune.FormMode爲空。 你能幫忙嗎? 謝謝。:)

+0

請..任何人?網頁不是我的區域。這可能是一個簡單的事情,但我不明白我做錯了什麼?謝謝。 – blackkatt

+0

請..任何人?試過驗證方法,但它似乎也沒有工作.. http://www.campusmvp.net/blog/validation-of-hidden-fields-at-the-client-in-asp-net-mvc – blackkatt

回答

0

知道了!!!捕獲點擊事件的解決方案,順便傳遞值..這是更trickie ..但經過幾次嘗試得到它。:)這樣做,它工作正常。:)

$('#New').click(function (e) { 
e.preventDefault(); 
$('#FormCreate')[0].FormMode.value = e.target.innerText; 
$('#FormCreate').submit();}); 

不要知道如果這是最好的辦法..但它的作品。:)