0

Idそれを実行に移すには、どのアイテムをクリックするかが必要ですGetProduct()。要素を使用hiddenしましたが、機能しません:

@using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new { id = "productForm" }))
    {
      foreach (var item in list)
      {
         <a href="#" onclick="$('#productForm').trigger('submit');">@item.Name</a>

        //this hidden always send '1', but I want to send item's Id
        <input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id"  />
      }

     <noscript>
        <input type="submit" id="sendButton" />
     </noscript>
    }

私の間違いはどこですか?どうすれば送信できますIdか?

4

2 に答える 2

1

非表示の入力には「id」という名前があり、for ループで追加された回数を取得しています。したがって、それは機能しません..

ボタンをクリックしてフォームを直接送信しないでください。ボタンのrel属性にIDを格納します。クリックされたときにその値を隠し変数に割り当ててから、フォームを送信します..

<a href="#"
   rel="@(item.id)"
   onclick="$('#id').val($(this).attr('rel')); ('#productForm').trigger('submit');">
@item.Name
</a>

ただし、onClickコードを別の関数に入れることをお勧めします:)

このフィドラーをチェック

于 2013-02-26T10:39:56.650 に答える
1

これを試して 。

  foreach (var item in list)
  {
    @using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new {  }))
      {
     <a href="#" class="anchor" >@item.Name</a>

    //this hidden always send '1'.
    <input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id"  />


      <noscript>
       <input type="submit" id="sendButton" />
     </noscript>
     }
  }



<script>
$(function(e){
 $('.anchor').click(function(e){
   //get the parent form.
   var parentform= $(this).parents('form:first');
   parentform.submit();

  });
});
</script>
于 2013-02-26T10:59:16.797 に答える