Текстовые поля исчезают при нажатии кнопки

0

У меня возникла проблема после использования 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. Я добавил код для каждого текстового поля, чтобы проверить, что добавлено к нему (поэтому его не пустые или есть буквы, где должны быть номера). Пример этого кода показан ниже. Он изменяет цвет границы, если есть ошибка. Кроме того, я добавил строку кода, чтобы остановить эксплойт хранимой процедуры 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 текстовых полей. Когда пользователь нажимает commit, они исчезают.

Надеюсь, что все имеет смысл.

  • 1
    Вам действительно нравится повторять ваш код снова и снова.
  • 0
    спасибо за полезный комментарий. Я просто прохожу тест, чтобы очистить его, когда начну работу. Это первый jquery, который я использовал, поэтому я учусь до сих пор.

1 ответ

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" })


        }

});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню