未获得javascript中的hiddenfield值

问题描述 投票:0回答:2

我在获取隐藏字段值时遇到问题,该问题是在页面加载时在后面的代码中设置的。问题是,当我尝试在javascript中获取该设置值时,它给出了undefined或null。无法获取后面代码中页面加载中设置的值。

//cs code is like this
protected async void Page_Load(object sender, EventArgs e)
{

HiddenField_alt_edit.Value = [{"unitid":"3072","unit_nameeng":"BOTTLE","purchcost":"2.000","salrate":"4.000","avgcost":"2.000","factor":"2"},{"unitid":"3073","unit_nameeng":"PKT","purchcost":"10.000","salrate":"20.000","avgcost":"10.000","factor":"10"}]

ClientScriptManager script = Page.ClientScript;
                            script.RegisterClientScriptBlock(this.GetType(), "Alert", "<script type=text/javascript>addAlternativeRowWithData();</script>");

}
//aspx page declaration goes like this. Also i am using a master page.
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<asp:HiddenField ID="HiddenField_alt_edit" runat="server"  Value="i am on."/>

</asp:Content>
// javascript file code goes like this
function addAlternativeRowWithData(mode) 
{

    alert("test");
    var idvalue = $("#HiddenField_alt_edit").val();
    alert(idvalue);
    alert($nonconfli('#ContentPlaceHolder1_HiddenField_alt_edit').val());
    var myHidden = document.getElementById('<%= HiddenField_alt_edit.ClientID %>').value;
    alert(myHidden);
    var json_string = $nonconfli('#ContentPlaceHolder1_HiddenField_alt_edit').val();
    var arr_from_json = JSON.parse(json_string);
    alert("test 2");
    alert(arr_from_json);
}
javascript c# asp.net
2个回答
0
投票

在客户端生成的ID可能会有所不同,因为您已将runat="server"设置为隐藏字段是代码中的服务器端控件。

通常有两种方法。将ClientIDMode设为静态,或使用表单中的实例获取客户端ID。

赞:

<asp:HiddenField ID="HiddenField_alt_edit" ClientIDMode="static" runat="server"  
                 Value="i am on."/>

然后执行以下操作:

var idvalue = $("#HiddenField_alt_edit.ClientID").val();

或在客户端代码中,您需要获取如下所示的ID:

var idvalue = $("#<%= HiddenField_alt_edit.ClientID %>").val();

0
投票

更改:HiddenField_alt_edit.Value = [{"unitid":"3072","unit_nameeng":"BOTTLE","purchcost":"2.000","salrate":"4.000","avgcost":"2.000","factor":"2"},{"unitid":"3073","unit_nameeng":"PKT","purchcost":"10.000","salrate":"20.000","avgcost":"10.000","factor":"10"}]

对此:HiddenField_alt_edit.Value = " [{'unitid':'3072','unit_nameeng':'BOTTLE','purchcost':'2.000','salrate':'4.000','avgcost':'2.000','factor':'2'},{'unitid':'3073','unit_nameeng':'PKT','purchcost':'10.000','salrate':'20.000','avgcost':'10.000','factor':'10'}]"

然后,添加以下内容:<asp:HiddenField ID="HiddenField_alt_edit" runat="server" Value="i am on." ClientIDMode="Static" />

在您的js中,您必须输入以下内容:

const value = document.getElementById('HiddenField_alt_edit').value

const jsonString = JSON.stringify(value)
const json = JSON.parse(jsonString)

console.log(json)
<input hidden id="HiddenField_alt_edit" value="[{'unitid':'3072','unit_nameeng':'BOTTLE','purchcost':'2.000','salrate':'4.000','avgcost':'2.000','factor':'2'},{'unitid':'3073','unit_nameeng':'PKT','purchcost':'10.000','salrate':'20.000','avgcost':'10.000','factor':'10'}]">
© www.soinside.com 2019 - 2024. All rights reserved.