title: accessing <input type="text"> value at codebehind
body: <p>i have a small form on SharePoint application page:</p>
  
  <pre><code> &lt;form method="post" id="registration-form" action="default.aspx" class="form-general cf" data-querycompletion-url="ajax/searchinstant.aspx"&gt;
       &lt;input type="text" id="name" name="name" placeholder = "Your name" runat="server" /&gt;
            &lt;input type="text" id= "company" name="company" placeholder= "Your company" runat="server"/&gt;
      &lt;input type="text" id="srchtxtx" class="search" name="visitor" placeholder="visitor" runat="server" /&gt;
      &lt;input name="btnConfirm" id="Submit1" class="right" value="register" type="submit" runat="server" /&gt;&lt;/form&gt;
  </code></pre>
  
  <p>At codebehinde of default.aspx, i want to access  values as:</p>
  
  <pre><code>string val1 = name.value;
  string val2 = company.value;
  string val3 = srchtxtx.value;
  </code></pre>
  
  <p>But the above returns empty string in val1, val2 nd val3 respectively. But if I remove <code>runat = "server"</code> from <code>&lt;input&gt;</code> tags, then i can access values successfully as:</p>
  
  <pre><code>string val1 = Request.Form["name"];
  string val2 = Request.Form["company"];
  string val3 = Request.Form["visitor"];
  </code></pre>
  
  <p>The question is why it returns empty string values when I use <code>runat = "server"</code> in <code>&lt;input&gt;</code> tags ??
  Due to some reasons, I could not remove <code>runat = "server"</code> from <code>&lt;input&gt;</code> tags.</p>
  
  <p>Is there any other way to access <code>&lt;input&gt;</code> values at codebehind while assuming runat = "server" attribute in <code>&lt;input&gt;</code> ??</p>
  
  <p>I am also restricted not to use <code>&lt;asp:TextBox&gt;</code> control.</p>