【问题标题】:how to get the value from input control of html如何从html的输入控件中获取值
【发布时间】:2011-06-24 09:59:32
【问题描述】:

我有一个由第 3 方控件生成的表。该表只有一行一列。此列中的 html 文本如下:

<p>
    this is a test</p>
<p>
    <input name="amount" type="text" value="this is for amount" /></p>
<p>
    this is a test</p>
<p>
    <input name="test" type="text" value="this is for test" /></p>
<p>
    this is a test</p>

问题是如何获取保存在 html 输入控件中的值? 我尝试了以下代码,但失败了:

t.Rows[0].Cells[0].FindControl("amount");

提前谢谢...

【问题讨论】:

    标签: c# .net asp.net html


    【解决方案1】:

    您可以使用下面的 sn-p 在 javascript 函数中检索所需的值:

    function getValue()
    {
        //First method
        var val= document.getElementsByName("amount");
        alert("Val by Element Name:-" +val(0).value);
    
        //Second method
        val= document.getElementById("amount");
        alert("Val by element Id:-" +val.value);
    
        //third method
        val= document.getElementsByTagName("input");
        alert("Val by Tag:-" +val(0).value);
        alert("Val by Tag:-" +val(1).value);
    }
    

    假设:您知道由第 3 方工具获取的表格中输入控件的名称。

    【讨论】:

      【解决方案2】:

      您的意思是当表单被发回时?在这种情况下,只需使用

      Request["amount"]
      

      获取价值。

      【讨论】:

      • 不,表单没有回发...代码是由第 3 方控制在服务器端生成的。
      • 那么,如果您不发回表单,您希望在哪个阶段获得输入字段的值?
      • 在页面的页面加载事件中,第 3 方控件用于获取表格(第 3 方通过 Web 服务从其服务器获取此数据)。获得表格后,我们必须获得表格内输入 html 控件中可能存在的值。
      【解决方案3】:

      由于它是第 3 方控件,它应该允许您通过控件的属性访问控件的值。检查属性和文档。

      【讨论】:

      • 正如我所提到的,上面的代码是由第 3 方控件生成的,我无法控制它。
      【解决方案4】:

      使用 HiddenControl 和 jQuery。

      <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script>
          $(documet).ready(function(){
            var inputVals = '';
            $('#yourThirdPartyTableID').find('input[type=text]').each(function() {
               inputVals  = inputVals + $(this).val()  + ', ';
            });
            $('#<%= YourHiddenControlID.ClientID %>').val(inputVals);
          });
        </script>
      

      上面的代码会将第三方表格中所有文本输入的值插入到隐藏控件中,并用逗号分隔。您可以将逗号更改为其他任何内容,以便在服务器端代码上更容易拆分。

      如果您要查找“名称”为“金额”的输入值,请执行以下操作:

      <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script>
          $(documet).ready(function(){
            $('#<%= YourHiddenControlID.ClientID %>').val($('#yourTableID').find('[name="amount"]').val());
          });
        </script>
      

      【讨论】:

        【解决方案5】:

        除非您说 runat="server",否则没有直接的方法可以检索输入控件的值。

        我的建议是使用 runat="server" 标记并尝试使用 VALUE 属性获取值。

        否则您可以使用 Page.FindControl('') 并查看控件是否返回 null 以外的...然后我觉得这会起作用。

        如果您使用的是 ajax 或主内容页面,那么控件 ID 将不是您提供的那个......所以请确保您提供正确的 ID 本身(使用页面的视图源)

        【讨论】:

          猜你喜欢
          • 2014-09-17
          • 1970-01-01
          • 2017-04-02
          • 1970-01-01
          • 2011-07-05
          • 2020-02-16
          • 2013-03-27
          • 1970-01-01
          • 2018-11-19
          相关资源
          最近更新 更多