0


我正在尝试启用和禁用文本框,这取决于带有 java 脚本的选中复选框,有没有办法做到这一点?
这是我的代码

<script type="text/javascript">
    function ed1(bEnable, textBoxID, textBoxID2) {
        document.getElementById("<%= textBoxID.ClientID %>").disabled = !bEnable
        document.getElementById("<%= textBoxID2.ClientID %>").disabled = !bEnable
    }
</script>

这是复选框和文本框

<asp:CheckBox ID="CH0" runat="server" Font-Names="Tahoma" onclick="ed1(this.checked, 'TB1', 'TB2');" 
            Font-Size="X-Small" Style="font-size: 12px; right: 20px; color: #006699;
            font-family: Tahoma; position: absolute; top: 25px; width: 80px;"
            />
<asp:TextBox ID="TB0" runat="server" EnableViewState="False" Height="12px" MaxLength="2"
            Style="font-size: 11px; right: 110px; vertical-align: middle; color: #0099ff; font-family: tahoma;
            position: absolute; top: 25px; text-align: left; width: 15px; " Enabled="false"
            Wrap="False" ValidationGroup="1234567890"></asp:TextBox>
<asp:TextBox ID="TB1" runat="server" EnableViewState="False" Height="12px" MaxLength="2"
            Style="font-size: 11px; right: 140px; vertical-align: middle; color: #0099ff; font-family: tahoma;
            position: absolute; top: 25px; text-align: left; width: 15px; " Enabled="false"
            Wrap="False" ValidationGroup="1234567890"></asp:TextBox>

它不会起作用,因为 asp 不理解 textBoxID 的含义!(它已在 javascript 上声明!)
我收到以下错误:

BC30451: 'textBoxID' is not declared. It may be inaccessible due to its protection level.

如果我使用实际的 ID 而不是 textBoxID2 它会很好用,但是因为我有很多复选框和很多文本框来启用和禁用无数的 javascript 似乎不是一个好主意!
让我知道这是否可以解决并提前感谢

4

3 回答 3

1

偶然发现了另一个解决方案,我们不能将asp代码放入qoute但我们可以将javascript字符串代码放入asp代码:D:D所以应该是这样的=>

onclick='<%# "ed1(this.checked, " & TB1.ClientID & ", " & TB2.ClientID & ");" %>' 

java脚本代码也必须是=>

<script type="text/javascript">
    function ed1(bEnable, textBoxID, textBoxID2) {
        document.getElementById(textBoxID).disabled = !bEnable;
        document.getElementById(textBoxID2).disabled = !bEnable;
    }
</script>

希望这对将来的人有所帮助:-)

于 2013-08-04T10:50:16.237 回答
0

更改您的代码

onclick="ed1(this.checked, 'TB1', 'TB2');" 

onclick="ed1(this.checked, '<%= TB1.ClientID %>', '<%= TB2.ClientID %>');"

并修改你的 JavaScript 函数

<script type="text/javascript">
    function ed1(bEnable, textBoxID, textBoxID2) {
        document.getElementById(textBoxID).disabled = !bEnable;
        document.getElementById(textBoxID2).disabled = !bEnable;
    }
</script>
于 2013-07-22T08:09:55.437 回答
0

似乎没有答案
所以我只是做了很多复制粘贴来创建与复选框一样多的功能,
所以它可能是这样的

<script type="text/javascript">
    function ed00(bEnable) {
        document.getElementById("<%= TB000.clientID %>").disabled = !bEnable
    }
</script>

复选框和文本框是

    <asp:CheckBox ID="CH000" runat="server" onclick="ed00(this.checked);"/>
    <asp:TextBox ID="TB000" runat="server"/>

如果有人得到除此以外的任何答案,请告诉我和其他人,谢谢

于 2013-07-23T05:14:04.787 回答