5

I have 3 ASP.NET textboxes and one HiddenField. The value of the third textbox (this is disabled) depends on the values of the other two.

The formula is

txtPricepad = txtPrice/txtCarton

<asp:TextBox ID="txtPriceCase" runat="server" onblur="javascript:GetPricePerPad();></asp:TextBox>
<asp:TextBox ID="txtCarton" runat="server"></asp:TextBox>
<asp:TextBox ID="txtPricePad" Enabled="false" runat="server" ></asp:TextBox>
<asp:HiddenField ID="hdPricepad" runat="server"/>

  function GetPricePerPad()
  {
    var priceCase   = document.getElementById('ctl00_content_txtPriceCase').value;
    var cartons     = document.getElementById('ctl00_content_txtCarton').value;
    var res         = Number(priceCase) / Number(cartons);

    document.getElementById('ctl00_content_txtPricePad').value = res;
    document.getElementById('ctl00_content_hdPricepad').value = res;
  }

Assuming that the initial value of txtPricePad is 0 and txtCarton is 12. When the value of txtPrice is changed to 1200, GetPricePerPad() will be called, thus txtPricePad will be 100.

Javascript successfully changed the txtPricePad's value to 100 but when I am calling txtPricePad from the codebehind, its value is still 0. That's why I assigned also the result of the formula to a HiddenField. Are there other ways to do this? I do not want to use HiddenField again.

Nathan Koop
  • 24,803
  • 25
  • 90
  • 125
Liz
  • 323
  • 7
  • 17
  • possible duplicate of [I want to get the value of disabled text box in our next jsp but i am getting null value](http://stackoverflow.com/questions/3757806/i-want-to-get-the-value-of-disabled-text-box-in-our-next-jsp-but-i-am-getting-nu) – Mohit Kanwar Jul 28 '15 at 10:17

2 Answers2

10

Liz, is it possible for you to make the text field readonly (ReadOnly=True) as opposed to making it Disabled=True? The reason being that when a text field is disabled is not submitted with the form in the POST request. See this question.

If you want to make it look as if it was disabled, I guess you can apply a CssClass to the button.

Icarus
  • 63,293
  • 14
  • 100
  • 115
  • 2
    I know this was a year ago, but trying to retreive the value of a disabled textbox wasted a full 8 hr day - your answer worked – Scott Selby Nov 16 '12 at 03:01
2

I would use one of 2 options

  1. Perform the calculation again server side from the other inputs or
  2. Use javascript to enable the txtPricePad field on form submit, see below

    var pricePad = document.getElementById(<%=txtPricePad.ClientID%>);

    pricePad.disabled = false;

Jon P
  • 19,442
  • 8
  • 49
  • 72