Jquery 函数不会在用户控件 asp.net 触发

Jquery function is not getting fired in asp.net user control

本文关键字:控件 asp net 触发 用户 函数 Jquery      更新时间:2023-09-26

我创建了一个包含 RadioButtonList 的用户控件。根据单选按钮列表选择,特定选项将可见或隐藏。以下是我的 HTML 代码:

<tr>
                            <td align="left" valign="middle">
                            <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
                            Are you the Financial Analyst/Manager responsible for this profit center?
                            </font>
                            </td>
                            <td align="left" valign="middle">
                            <asp:RadioButtonList ID="RadioButtonListYesNo" runat="server" RepeatDirection="Horizontal">
                            <asp:ListItem Value="1">Yes</asp:ListItem>
                            <asp:ListItem Value="2">No</asp:ListItem>
                            </asp:RadioButtonList>
                            </td>
                            </tr>
<tr>
                        <td>
                        <div id="divFAFMQues" style="visibility:hidden;">                                               
                        <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
                        Who is the FM/FA of this profit center?
                        </font> 
                        </div>                      
                        </td>
                        <td>
                        <div id="divFAFM" style="visibility:hidden;">
                        <input name="FAFM" type="text" id="TextFAFM" maxlength="20"/> 
                         </div>
                        </td>
                        </tr>

以下是我的 Jquery 函数:

 <script src="~/Scripts/jquery-1.11.2.js" type="text/javascript">
        $(document).ready(function () {
            $("input[id$=RadioButtonListYesNo]").change(function () {
                alert("In Jquery");
                var res = $('input[type="radio"]:checked').val();
                if (res == '1') {
                    $("#divFAFMQues").css("visibility", "hidden");
                    $("#divFAFM").css("visibility", "hidden");
                }
                else {
                    $("#divFAFMQues").css("visibility", "visible");
                    $("#divFAFM").css("visibility", "visible");
                }
            });
        });
    </script>

Jquery 函数根本没有被触发,我无法发出警报以执行。我哪里出错了?我是否需要向我的解决方案添加更多 jquery 文件?

你需要

将jquery和js代码的包含分开,像这样

<script src="~/Scripts/jquery-1.11.2.js" type="text/javascript"></script>
<script type="text/javascript">
  $(document).ready(function () {
        $("input[id^=RadioButtonListYesNo]").change(function () {
            alert("In Jquery");
            var res = $('input[type="radio"]:checked').val();
            if (res == '1') {
                $("#divFAFMQues").css("visibility", "hidden");
                $("#divFAFM").css("visibility", "hidden");
            }
            else {
                $("#divFAFMQues").css("visibility", "visible");
                $("#divFAFM").css("visibility", "visible");
            }
        });
    });
</script>

使用 2 个单独的 script 标记,一个用于添加js脚本文件,另一个用于内联js代码。

现在,jquery说:

$('[id^=hello]') 选择ID 以 开头的所有元素你好。
$('[id$=hello]') 选择ID 以 结尾的所有元素你好。

使用您的代码 asp.net 生成 2 个 ID 为 RadioButtonListYesNo_0RadioButtonListYesNo_1 的无线电类型输入。在您的代码中,您正在使用永远不会匹配任何输入的选择器id$=RadioButtonListYesNo,因此,您需要按照我上面写的id^=RadioButtonListYesNo更改它。