繁体   English   中英

隐藏,显示使用切换jquery布尔值的输入

[英]Hide, show input using toggle jquery boolean

我从下拉列表中获取输入,并且根据用户选择的内容来显示/隐藏不同的输入。 我尝试将boolean与boolean一起使用,但它没有像应该的那样响应。

我希望我发送true进行切换,然后它要么显示输入,要么如果已经显示,则保持这种状态。 如果我发送的是假,它会隐藏,或者如果被隐藏,它将保持这种状态。

如您所见,“父代”和“子代”的第一个值都为true,当我从子代切换为父代(网站加载时,名字是可见的)时,它隐藏了,而我切换到管理员(即使它为假)也是如此。节目。

 $(document).ready(function () {
        var user = $("[id*=userTypeDD]").val();
        $("[id*=userTypeDD]").on("change", function () {
            user = $("[id*=userTypeDD]").val();
            hideInputFields(user);
        });
    });

    function hideUserInputFields(user) {
        if (user == "Child") {
            hideInputFields(true, true, false, false, false);
        }
        if (user == "Parent") {
            hideInputFields(true, true, true, true, true);
        }
        if (user == "Administrator") {
            hideInputFields(false, false, false, false, false);
        }
    }

    function hideInputFields(firstNameIsVisible, surnameIsVisible, postcodeIsVisible, telephoneIsVisible, emailIsVisible)
    {
        $("[id*=firstNameTxt]").closest("tr").toggle(firstNameIsVisible);

    }

标记(ASP.NET)

<asp:DropDownList ID="userTypeDD" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
    <asp:ListItem>Child</asp:ListItem>
    <asp:ListItem>Parent</asp:ListItem>
    <asp:ListItem>Administrator</asp:ListItem>
</asp:DropDownList>
    </td>
    <td>&nbsp;</td>
</tr>
<tr>
    <td class="text-right" style="width: 574px">
<asp:Label ID="firstNameLabel" runat="server" Text="First name: "></asp:Label>
    </td>
</tr>
</table>

编辑:在我看来,无论我传递的布尔值是多少,它每次都会简单地切换TR

您在下拉列表的on change事件中调用了错误的函数。 改变这个...

$("[id*=userTypeDD]").on("change", function () {
        user = $("[id*=userTypeDD]").val();
        hideInputFields(user);
    });

$("[id*=userTypeDD]").on("change", function () {
        user = $("[id*=userTypeDD]").val();
        hideUserInputFields(user);
    });

这就是为什么最好不要如此类似地命名您的函数。 您的hideUserInputFields是一个令人误解的名称,因为它不是这样做的函数。 您最好将其称为handleUserSelectionChange 那么您可能不会遇到这个错误。 您的其他函数名称很有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM