单击按钮时文本框消失

时间:2013-12-12 16:07:39

标签: javascript jquery asp.net vb.net

使用Jquery后我遇到了问题。

我正在使用VS 2013,asp.net,VB。

我在页面上有一个面板,显示从gridview中选择行的时间。它包含几个文本框和一个下拉列表。我有一个jquery脚本,它隐藏/显示页面上的文本框,具体取决于从下拉列表中选择的内容。代码如下。

 <script>
    function jScript() {

            $('#LowerText').hide();
            $('#UpperText').hide();
            $('#min').hide();
            $('#max').hide();
            $('#CommentsText').hide();
            $('#ChangeStatusPnl').css({ "height": "200px" })

            $('#AssetStatusChoice').change(function () {
            if ($('#AssetStatusChoice').val() == "Fully Available")
            {
                $('#CommentsText').hide();
                $('#LowerText').hide();
                $('#UpperText').hide();
                $('#min').hide();
                $('#max').hide();
                $('#ChangeStatusPnl').css({ "height": "200px" })

            }
            if ($('#AssetStatusChoice').val() == "Restricted")
            {
                $('#LowerText').show();
                $('#UpperText').show();
                $('#CommentsText').show();
                $('#min').show();
                $('#max').show();
                $('#ChangeStatusPnl').css({ "height": "340px" })


            }
            if ($('#AssetStatusChoice').val() == "Unavailable")
            {
                $('#LowerText').hide();
                $('#UpperText').hide();
                $('#min').hide();
                $('#max').hide();
                $('#CommentsText').show();
                $('#ChangeStatusPnl').css({ "height": "280px" })


            }
        });
        };

            </script>

这很好用。

当用户单击面板上的提交按钮时,在文本框中输入的数据将保存到MS SQL DB。我为每个文本框添加了一些代码来验证添加到它的内容(因此它不是空白或有字母应该有数字)。此代码的示例如下所示。如果出现错误,它会更改边框的颜色。此外,我还添加了一行代码,以便在存在验证问题时停止SQL存储过程。

Dim isValid As Boolean
    isValid = True
    Dim intValidate As Integer
    If Not Integer.TryParse(TimeTextHrs.Text, intValidate) Or TimeTextHrs.Text = "" Then

        AssetPopUp.Show()
        TimeTextHrs.BorderColor = Drawing.Color.Red
        isValid = False

    End If

我的问题是,当用户点击面板中的提交时,由于在下拉列表中选择的内容现在可见的框消失,就像重新加载面板一样。我需要他们保持可见。如果您查看上面的JQuery,您可以看到从下拉列表3文本框显示中选择受限制的时间。当用户点击提交这些消失时。

希望一切都有意义。

1 个答案:

答案 0 :(得分:0)

当页面加载以设置可见性时,您将不得不运行一些js。

您还应该考虑重构此逻辑,以使其更易于维护。

       $(function() {

       if ($('#AssetStatusChoice').val() == "Fully Available")
        {
            $('#CommentsText').hide();
            $('#LowerText').hide();
            $('#UpperText').hide();
            $('#min').hide();
            $('#max').hide();
            $('#ChangeStatusPnl').css({ "height": "200px" })

        }
        if ($('#AssetStatusChoice').val() == "Restricted")
        {
            $('#LowerText').show();
            $('#UpperText').show();
            $('#CommentsText').show();
            $('#min').show();
            $('#max').show();
            $('#ChangeStatusPnl').css({ "height": "340px" })


        }
        if ($('#AssetStatusChoice').val() == "Unavailable")
        {
            $('#LowerText').hide();
            $('#UpperText').hide();
            $('#min').hide();
            $('#max').hide();
            $('#CommentsText').show();
            $('#ChangeStatusPnl').css({ "height": "280px" })


        }

});