0

有没有办法在 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")。

如何获得该值?

4

3 回答 3

2

您可以使用以下.val()方法:

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

有 2 个重载:一个不带任何参数并允许您读取值(这就是您在问题中显示的内容)和一个带参数并设置值的重载(我已经展示了在我的回答中)。


更新:

显然,您正试图将点击的客户 ID 的值放在隐藏字段中。在这种情况下,您可以简单地为您的 span 元素提供一个类:

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

然后简单地订阅这个元素的点击事件:

$(function() {
    $('.customerId').click(function() {
        $('#customerId').val($(this).text());
        return false;
    });
});
于 2012-07-25T10:24:47.853 回答
2
function GetCustomerID() {

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

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

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

}
于 2012-07-25T10:38:07.150 回答
1

纯Javascript版本是;

//set
document.getElementById("customerID").value = "new value";
//get
var customerIDValue = document.getElementById("customerID").value;
于 2012-07-25T10:33:29.493 回答