Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript验证方法中访问服务器端转发器控件_Javascript_Asp.net - Fatal编程技术网

在javascript验证方法中访问服务器端转发器控件

在javascript验证方法中访问服务器端转发器控件,javascript,asp.net,Javascript,Asp.net,我有一个基于asp.net的转发器控件 <div id="repeaterDiv"> <asp:TextBox ID ="txtAnswer" TextMode="MultiLine" Columns="50" Rows="4" runat="server" /> <asp:HiddenField ID="isHid" runat="server" Value='<%# DataBinder.Eval(Container.Dat

我有一个基于asp.net的转发器控件

    <div id="repeaterDiv">
    <asp:TextBox ID ="txtAnswer" TextMode="MultiLine" Columns="50" Rows="4" runat="server" />
        <asp:HiddenField ID="isHid" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "IsAnswerEssential") %>' />        
    </div>

我试图使用Javascript访问它们,以便对它们执行验证。所以我就是这样做的,这在某种程度上是好的。由于中继器控件的id问题,我正在使用getelementsbytagname进行此操作

var myTxtBoxes = document.getElementsByTagName('textarea');
var myHiddenField = document.getElementsByTagName('input');

for (var i = 0; i < myTxtBoxes.length; i++) {


    alert(myTxtBoxes[i].value);
    alert(myHiddenField[i].value);

}
var mytxtboxs=document.getElementsByTagName('textarea');
var myHiddenField=document.getElementsByTagName('input');
对于(var i=0;i

问题是我做上述工作的方式会拉取我页面中的所有输入,这意味着我最终会得到隐藏的东西,比如asp.net的viewstate生成器。有人知道一个干净的方法来做这件事吗。感谢您提供的任何有用信息。

这是我为其他人所做的

<asp:Label ID="isHid" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "IsAnswerEssential") %>' style="display:none;" CssClass="class2" />     

这是javascript

    function ValidateInput() {

        var cntrls2 = $('.class2')
        for (var i = 0; i < cntrls1.length; i++) {                
            alert(cntrls2[i].getAttribute("Value"));
        }

          }
函数ValidateInput(){
变量cntrls2=$('.class2')
对于(var i=0;i

它解决了我最初强调的这个问题。虽然感觉一点也不好。我希望它有用。谢谢你的建议,梅森,非常感谢你抽出时间来帮助我

再次感谢梅森,我在这方面取得了更大进展。所以我使用了HTML5数据基本数据属性

  <asp:TextBox ID="txtAnswer" TextMode="MultiLine" Columns="50" Rows="4" runat="server"       CssClass="class1" data-essential='<%# DataBinder.Eval(Container.DataItem,
 "IsAnswerEssential") %>'  />

不要使用标记名,而是在您希望从JavaScript引用的元素上使用CSS类。然后使用JavaScript(最好是jQuery,这使它变得简单)检索这些元素。你会使用jQuery吗?我勉强通过jQuery,只是。我可以给asp.net隐藏域分配一个cssclass吗,你知道吗?我不这么认为。无论如何,我怀疑在这种情况下使用HiddenField是正确的。您可能会在文本框中考虑一些<代码>数据->代码>属性,例如<>代码>数据本质=“true”<代码>,您应该将其命名为比 Cult2更具描述性的东西。另外,正如我前面提到的,您应该使用
data-
属性,这将消除使用虚拟标签的开销。看看他们。例如:
function ValidateInput() {
        var cntrls1 = $('.class1')

        for (var i = 0; i < cntrls1.length; i++) {
            alert(cntrls1[i].getAttribute("data-essential"));                
        }
          }