set razor@Html.Hidden在javascript函数中

set razor @Html.Hidden within javascript function

本文关键字:函数 javascript razor@Html Hidden set      更新时间:2024-02-05

有没有办法在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.Hiddden("customerID").

如何获得该价值?

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

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

有两个重载:一个不接受任何参数,允许您读取值(这是您在问题中显示的),另一个接受参数并设置值(我在回答中显示的那个)。


更新:

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

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

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

$(function() {
    $('.customerId').click(function() {
        $('#customerId').val($(this).text());
        return false;
    });
});
function GetCustomerID() {
    globleCustomerId = $('#customerID').val();
     //  Use this line to set the globleCustomerId value to @Html.Hidden() field
      $('#customerID').val(globleCustomerId);
}

纯Javascript版本是;

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