Элемент div мигает при настройке видимости - PullRequest
0 голосов
/ 06 февраля 2011

Я хотел бы скрыть div при нажатии кнопки и показать его при нажатии на ссылку, но происходит то, что он просто мигает, показывая его или скрывая.Это происходит независимо от того, каким образом я пытаюсь изменить его видимость на странице: change top: -1000px;к началу: 0px;или видимость: скрытый для видимости: видимый или использующий атрибуты отображения "" vs "none".Все это приводит к тому, что оно появляется (если оно становится видимым) для вспышки, или исчезает (если оно скрыто) для вспышки.

Я вызываю функцию JS, когда нажимаю на ссылку, чтобы показать div, и вызываюJS-функция при отправке формы в div, чтобы снова скрыть div.

Любая подсказка, почему это может произойти?

Несколько замечаний о странице, которые могут иметь отношение:

-ные элементы рисуются через Javascript во время onLoad для Body {}, но не те, которые содержат этот элемент или сам этот элемент.

-этот

<script language="JavaScript" src = "dashboard.js">
    </script>

... isвызывается в разделе head и включает в себя следующие функции

-Я также пытался поместить функции скрытия / показа непосредственно после соответствующего div в html-коде, но без изменений.

.css для показа функции div:

    div#userRegistration{
    text-align: center;
    width: 100%;
    height: 150%;
    position: absolute;
    background-color: white;
    z-index: 20;
    top: -1000px;
}

JS - обновлено ниже:

function userRegistration(){
   document.getElementById("userRegistration").style.top = '0px';
   return true;
}

функция JS, чтобы скрыть (заметьте, что это никогда не будет использовано, пока я не смогу показать div для показаи оставайся на первом месте) - обновлено:

function validateUserRegistration(){
    document.getElementById("userRegistration").style.display = 'none';
    return true;
}

обновленный HTML (за 2 предложения ниже):

        <div id="userRegistration">
            <h3>New User Registration:</h3>
            <form style="text-align: left;" action="" onsubmit="return validateUserRegistration();">
                <table>
                    <tr>
                        <td>
                            Email:
                        </td>
                        <td>
                            <input type="text" name="userName"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            User Name:
                        </td>
                        <td>
                            <input type="text" name="userName"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Password:
                        </td>
                        <td>
                            <input type="password" name="password"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Repeat Password:
                        </td>
                        <td>
                            <input type="password" name="repeatPassword"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            &nbsp;&nbsp;
                        </td>
                        <td>
                            <input type="submit" name="submitRegistration" value="Submit"/>
                        </td>
                    </tr>
                </table>
            </form>
        </div>

РЕДАКТИРОВАТЬ: пустой href = "" под перезагрузкой страницы - это то, что вызывало "вспышку".Спасибо техническому театру за то, что он привлек мое внимание./ РЕДАКТИРОВАТЬ

HTML, который первоначально показывает div (делает ту же самую вещь, что и при попытке скрыть div, если он уже виден при загрузке страницы):

<div id="newUser">
   <a href="" onclick="return userRegistration();">

     New User? Register here.

   </a>
</div>

1 Ответ

1 голос
/ 06 февраля 2011

добавьте return true; в конец обеих ваших функций внутри фигурной скобки

РЕДАКТИРОВАТЬ:

еще одну вещь ... что должно произойти, когдаВы отправляете форму?Вы оставили действие пустым.Если он отправит обратно на эту же страницу (что и делает с текущим HTML), вся ваша страница перезагрузится.Это заставит его скрыться на мгновение, а затем снова появится, когда страница перезагрузится.Если вы пытаетесь отправить данные формы без перезагрузки страницы, вам необходимо реализовать это в вызове AJAX ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...