【问题标题】:Problem with Enable/disable text box in Gridview, with javascript/Jquery使用 javascript/Jquery 在 Gridview 中启用/禁用文本框的问题
【发布时间】:2019-12-02 13:03:46
【问题描述】:

提前感谢您的帮助:我有一个 Gridview,只有在激活复选框时才会激活 TextBox。我设法在Javascript中完成了这个功能。但问题是文本框默认启用(见图)。按下复选框两次后将其停用。我想解决这个问题,请你帮帮我。非常感谢 ! Look the image here !!

这是我的代码:

<div>
       <asp:GridView ID="gvModifOuvrageNonControles" runat="server" AutoGenerateColumns="false" SkinID="MarionGridView">
            <Columns>
                <asp:BoundField DataField="MirePrincipal" HeaderText="OUVRAGE PRINCIPAL" />
                <asp:BoundField DataField="LibelleMireSecondaire" HeaderText="OUVRAGE SECONDAIRE" />
                <asp:TemplateField HeaderText="NON CONTROLE">
                    <ItemTemplate>
                        <asp:CheckBox ID="cbInspection" OnClick="grisé(this);" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField> 
                <asp:BoundField DataField="Libellel" HeaderText="LIBELLE DES MS,VI,PI,SU,CP,PL,PF" />
                <asp:TemplateField HeaderText="RAISON">
                    <ItemTemplate>
                        <asp:TextBox ID="txtCause" On runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    <script type="text/javascript">

        function grisé(obj) {
            var rowData = obj.parentNode.parentNode;
            if (rowData.cells[2].firstElementChild.checked == false) {
                rowData.cells[4].firstElementChild.disabled = true;
            }
            else {
                rowData.cells[4].firstElementChild.disabled = false;

            }}

    </script> 

【问题讨论】:

  • 您是否检查过您是否定位正确的元素或检查浏览器控制台是否有任何错误?使用console.log()进行验证。
  • @JohnPete22 嗨,是的,我的目标是正确的元素。我只想让文本框默认禁用,然后用javascript函数更改。
  • 那为什么不在文本框上显示Enabled="False"?这样一开始它就被禁用了,然后你的 javascript 会在检查时启用它。
  • @JohnPete22 我已经尝试过了,但是如果您看到图像,您会看到在这两种情况下都启用了文本框。我希望仅当复选框为真时才启用文本框。
  • 在初始加载页面时,是否有 GridView 的 RowDataBound 函数,用于确定复选框是否被选中?

标签: javascript c# jquery asp.net ascx


【解决方案1】:

您可以将文本框的Enable属性设置为false

<asp:TextBox ID="txtCause" runat="server" Enabled="false"></asp:TextBox>

【讨论】:

  • 我已经尝试过了,但是如果您看到图片,您会看到在这两种情况下都启用了文本框。我希望仅在复选框为真时启用文本框
  • 上面的代码应该默认禁用文本框,然后也许你有另一个代码使它启用。
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多