【问题标题】:Set asp:HiddenField value on anchor click in jQuery在 jQuery 中单击锚点时设置 asp:HiddenField 值
【发布时间】:2017-12-01 14:28:29
【问题描述】:

我有一个 HiddenField 和两个锚点:

<asp:HiddenField ID="hfForm" runat="server" />

<a href="javascript:;" id="signup" onclick="signupClick()">Sign Up</a>
<a href="javascript:;" id="login" onclick="loginClick()">Login</a>

我正在尝试将单击的锚点的值设置为隐藏字段,如下所示:

$(document).ready(function() {            
    $("a").click(function() {
        $("<%= hfForm.ClientID %>").val($(this).val());
    });
});

但是回发时 page_load 中的内容变空了:

if (this.IsPostBack)
{
    string val = hfForm.Value; // getting "" val
}

我该如何解决这个问题?

任何帮助将不胜感激!

更新:

JavaScript 函数(我将值设置为 asp:Label 值):

function loginClick() {
  document.getElementById('<%=lbl.ClientID%>').innerText = 'Login';
}
function signupClick() {
  document.getElementById('<%=lbl.ClientID%>').innerText = 'SignUp';
}

【问题讨论】:

    标签: javascript c# jquery html asp.net


    【解决方案1】:

    这是一个锚,你应该在click事件中使用$(this).text()而不是.val(),你可以在具有值属性的元素上使用.val(),改变你的

     $("<%= hfForm.ClientID %>").val($(this).val());
    

     $("<%= hfForm.ClientID %>").val($(this).text());
    

    编辑

    signUp()signOut() 在同一个锚点上,这些函数在哪里,它们有什么作用?以及为什么不使用这些函数将值分配给隐藏字段。

    您使用 href 值作为 href="javascript:;" 而应该是 href="javascript:void(0);" 或者您可以在点击事件中添加 e.preventDefault()

    你的函数如下所示

    $(document).ready(function() {            
        $("a").on('click',function(e) {
            e.preventDefault();
            $("<%= hfForm.ClientID %>").val($(this).val());
        });
    });
    

    【讨论】:

    • 它再次在 page_load 中获得 "" 值。
    • 当您将console.log($("&lt;%= hfForm.ClientID %&gt;").length) 添加到$("a").click(function() { 中并单击锚点时,是否会返回10?我不是asp 的人,但我认为问题出在js 方面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2011-07-23
    • 2011-06-10
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多