Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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/2/csharp/277.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_C# - Fatal编程技术网

javascript下一步在表中隐藏

javascript下一步在表中隐藏,javascript,c#,Javascript,C#,首先,我在这个网站上搜索了很多帖子。所有的建议都不起作用。我认为这一个可能有效,但没有: 以下是相关表格: <table> <tr> <td><%#DataBinder.Eval(Container, "DataItem.Name")%>:</td> <td><asp:DropDownList ID="ddlInput" runat="server" onchange="swapIt(this);" /

首先,我在这个网站上搜索了很多帖子。所有的建议都不起作用。我认为这一个可能有效,但没有:

以下是相关表格:

<table>
<tr>
    <td><%#DataBinder.Eval(Container, "DataItem.Name")%>:</td>
    <td><asp:DropDownList ID="ddlInput" runat="server" onchange="swapIt(this);" />
    </td>
    <td>
        <asp:TextBox ID="txtInput" runat="server" MaxLength="1000" Width="120" />
    </td>
    <td>
        <asp:CheckBox ID="cbInput" runat="server" />
    </td>
</tr>
</table>
这应该会返回节点名输入,但会返回#文本。 另外,需要提到的是,该表位于updatepanel内的datalist中,onchange属性是从C#代码后面设置的

我已经尝试了很多不同的方法,但似乎找不到正确的方法


谢谢

nextSibling
不仅包括元素同级,还包括文本节点,因此用这种方式查找文本节点是完全正确的。此外,同级总是处于同一级别,这使得
txtInput
不是
ddlInput
的同级(它是paren't同级的子级)。如果要访问文本框和复选框,请使用
document.getElementById
通过指定元素的id来获取元素。在这种情况下,这将不起作用。文本框位于ASP.Net数据列表中。以前的开发人员没有表,而是有标签,直到我用母版页和ajax更新页面并添加表,因为大多数人都知道,不应该使用标签。如果删除空白,您可以尝试
inputCtl=ddlCtl.parentNode.nextSibling.firstChild
。感谢您的建议,但不幸的是,当使用firstChild查找控件时,该控件返回null。
nextSibling
不仅包括元素同级,还包括文本节点,因此以这种方式查找文本节点完全可以。此外,同级总是处于同一级别,这使得
txtInput
不是
ddlInput
的同级(它是paren't同级的子级)。如果要访问文本框和复选框,请使用
document.getElementById
通过指定元素的id来获取元素。在这种情况下,这将不起作用。文本框位于ASP.Net数据列表中。以前的开发人员没有表,而是有标签,直到我用母版页和ajax更新页面并添加表,因为大多数人都知道,不应该使用标签。如果删除空白,您可以尝试
inputCtl=ddlCtl.parentNode.nextSibling.firstChild
。感谢您的建议,但不幸的是,控件在与firstChild一起查找时返回null。
function swapIt(ddlCtl) {
var inputCtl = ddlCtl.nextSibling;
inputCtl = inputCtl.nextSibling;

alert(inputCtl.nodeName);

//if (inputCtl.nodeName == "INPUT") {
if (inputCtl.nodeName == "#text") {
    if (ddlCtl.value == "-1")
        inputCtl.style.display = "inline";
    else
        inputCtl.style.display = "none";
}
}