Не получается значение скрытого поля в javascript - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с получением значений скрытых полей, которые были установлены при загрузке страницы в коде позади. Проблема в том, когда я пытаюсь получить значения этого набора в javascript, что дает неопределенное или нулевое значение. Не удалось получить значения, которые были установлены при загрузке страницы в коде позади.

//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);
}

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Изменение:
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'}]">
0 голосов
/ 23 апреля 2020

Идентификатор, сгенерированный на стороне клиента, может отличаться, так как поле Hidden - это управление на стороне сервера в вашем коде, как вы установили runat="server".

Обычно есть два способа. Либо создайте ClientIDMode stati c, либо используйте экземпляр в форме для получения идентификатора на стороне клиента.

Like:

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

, и тогда должно работать следующее:

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

или в коде на стороне клиента вам нужно получить идентификатор, как показано ниже:

var idvalue = $("#<%= HiddenField_alt_edit.ClientID %>").val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...