2012-07-25 50 views
0

是否有方法在JavaScript代碼塊中設置razor @ HTML.Hidden控制值?在JavaScript函數中設置razor @ Html.Hidden

<tbody> 

        @Html.Hidden("customerID") 
        @if (Model != null) 
        { 
         var customers = Model.Customers.ToList(); 
         for (var i = 0; i < customers.Count; i++) 
         { 
         <tr class="gradeX"> 
          <td> 
           <a href="#"><span onclick="GetCustomerID()">@customers[i].CustomerId.ToString()</span></a> 
          </td> 
          <td> 
           <a href="#">@customers[i].Name</a> 
          </td>         
         </tr> 
         } 
        } 
       </tbody> 

和我的JavaScript塊

<script type="text/javascript"> 
    var globleCustomerId = null; 

    function GetCustomerID() { 

     globleCustomerId = $('#customerID').val(); 

     //globleCustomerId value should be set to @Html.Hidden() 


    } 
</script> 

在這個JavaScript塊我需要設置globleCustomerId值@ Html.Hidden(通過 「CustomerID」)。

如何獲得該值?

回答

2

你可以使用.val()方法:

$('#customerID').val('some value'); 

有2個重載:在一個不帶任何參數,並且可以讀取值(和它是你在顯示你的問題)和一個參數並設置值(我在答案中顯示的那個)。


UPDATE:

顯然,你正試圖把用戶ID的隱藏字段被點擊的價值。在這種情況下,你可以簡單地給一個類你span元素:

<a href="#"> 
    <span class="customerId"> 
     @customers[i].CustomerId.ToString() 
    </span> 
</a> 

,然後簡單地訂閱此元素的單擊事件:

$(function() { 
    $('.customerId').click(function() { 
     $('#customerId').val($(this).text()); 
     return false; 
    }); 
}); 
+0

感謝您的快速反應,但我的問題就是如何讓在@ HTML.Hidden控件值,那麼我可以使用該值在這樣的變種產品列表= Model.Products.ToList(),選擇( x => x.CustomerId == int.Parse(*隱藏的字段值在這裏*))。ToList(); – ddfnfal 2012-07-25 10:39:32

+0

你想使用服務器上隱藏字段的值嗎?在這種情況下,你根本不需要任何javascript。當提交包含此隱藏字段的表單時,該值將自動發送。 – 2012-07-25 10:43:53

+0

其實我試圖獲得當前客戶ID的價值。有一個生成客戶列表的for循環。如果用戶點擊第四個客戶,那麼我需要將該客戶ID設置爲隱藏字段。因此,我創建了Java腳本函數,然後在其中設置該值隱藏字段,現在我想知道如何獲得該Java腳本值Html.Hidden字段 – ddfnfal 2012-07-25 10:57:20

1

以及純JavaScript版本;

//set 
document.getElementById("customerID").value = "new value"; 
//get 
var customerIDValue = document.getElementById("customerID").value; 
1
function GetCustomerID() { 

    globleCustomerId = $('#customerID').val(); 

    // Use this line to set the globleCustomerId value to @Html.Hidden() field 

     $('#customerID').val(globleCustomerId); 

}