Входные данные в форме HTML в Firefox не отвечают

#firefox #forms

#firefox #формы

Вопрос:

На моем сайте есть HTML-форма, и по какой-то причине я не могу ввести текст во входные данные при просмотре сайта в Firefox (и только Firefox). Моя форма настроена следующим образом:

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<form action="/MyAction/" method = "post" id="register">

                    <div class="registerField">
                        <label for="signupFirstName" class="registerLabel">First Name</label>
                        <input type="text" name="signupFirstName" id="signupFirstName" />
                    </div>
                    <div class="registerField">
                        <label for="signupLastName" class="registerLabel">Last Name</label>
                        <input type="text" name="signupLastName" id="signupLastName" />
                    </div>
                    <div class="registerField">
                        <label for="signupPassword" class="registerLabel">Enter Password</label>
                        <input type="password" name="signupPassword" id="signupPassword" autocomplete="off" />
                    </div>
                    <div class="registerField">
                         <label for="retypeSignupPassword" class="registerLabel">Re-enter Password</label>
                        <input type="password" name="retypeSignupPassword" id="retypeSignupPassword" autocomplete="off" />
                    </div>
                    <div>
                        <div id="registerButtons">
                            <label for="signupButton">
                                <input type="submit" value = "Create Account" name = "registerButton" id="signupButton"/>
                            </label>
                        </div>
                    </div>
                </form>
 

У меня был обратный вызов, прикрепленный к событию keyup в форме (который действительно зарегистрировал событие), но с тех пор он был отключен, и у меня все еще есть эта проблема. Кроме того, когда я щелкаю правой кнопкой мыши и выбираю «Проверить элемент» на любом из входных элементов, чтобы запустить Firebug, все работает. Заранее спасибо за любые советы.

РЕДАКТИРОВАТЬ: спасибо всем, кто прокомментировал до сих пор. Ниже приведен метод Javascript, отключенный от контроллера, который мы используем для координации формы:

         if (this.view.hasClass("readyToSubmit"))
    {
        return true;
    }
    else
    {
        var email = viewState.userState.user.EmailAddress;
        var password = $("#signupPassword").val();
        var passwordConfirm = $("#retypeSignupPassword").val();
        var firstName = $("#signupFirstName").val();
        var lastName = $("#signupLastName").val();
        var isOrg = false;

        if (!isValidEmail(email))
        {
            this.registerStatusController.set("Invalid email");
            return false;
        }

        if ((password == null) || (password == undefined) || (password.length < 6))
        {
            this.registerStatusController.set("Please enter a total of at least 6 letters, numbers, and symbols for your password");
            return false;
        }

        if (!(password == passwordConfirm))
        {
            this.registerStatusController.set("Your passwords do not match");
            return false;
        }

        if (firstName == '' || lastName == '')
        {
            this.registerStatusController.set("You must provide a first and last name.");
            return false;
        }

        requestController.post("/Home/MyAction",
            {
                username: email,
                password: password,
                passwordConfirm: passwordConfirm,
                firstName: firstName,
                lastName: lastName,
                timeOffset: -(new timezoneJS.Date()).getTimezoneOffset(), //Our tzo is negative of server side tzo
                isOrganization: isOrg
            },
            $.scope(this.callbackRegistered, this),

            function (XMLHttpRequest, textstatus, errorThrown)
            {
                this.registerStatusController.set("A system error has occurred.  Please try again later.");
            });


        return false;
    }

    this.callbackRegistered = function (data, textStatus)
{
    if (data == 0)
    {
        viewState.userState.isProvisional = false;
        this.registerStatusController.set("New account created");
        this.view.addClass("readyToSubmit");
        // $("#register").submit();

        // Run the post-registration action and then clear it.
        if (this.postRegisterAction)
        {
            this.postRegisterAction();
            this.postRegisterAction = null;
        }
        this.hide();
    }
    else
    {
        $('body').css("cursor", "auto");

        if (data == 1)
        {
            this.registerStatusController.set("You are already logged in");
        }
        else if (data == 3)
        {
            this.registerStatusController.set("Your account is already registered");
        }
        else if (data == 4)
        {
            this.registerStatusController.set("Your invitation code is not valid");
        }
        else
        {
            this.registerStatusController.set("The system is not available at this time.  Please try again later.");
        }
    }
}
 

Для этих входных данных не определен CSS.

Еще одна вещь: эта форма хранится во всплывающем div, который перекрывает всю страницу. Его CSS определен ниже:

 #registerPopOver
{
    top: 0px;
    left: 0px;
    position: fixed;
    width: 100%;
    height: 100%;
}
 

Форма находится в div в #registerPopOver:

 #registerPopOverInner
{
    margin: auto;
    background-color: white;
    width: 300px;
    margin-top: 20%;
    border: 1px #CCC solid;
    padding: 4px;
}
 

Еще раз спасибо всем за ваш совет.

Комментарии:

1. Из вашего фрагмента я не вижу причин, по которым входные данные формы не должны работать. Какая версия Firefox? Вы пробовали отключить Firebug?

2. Отлично работает в Firefox 7 (и я действительно не знаю, почему этого не должно быть). Можем ли мы увидеть остальную часть кода?

3. применяете ли вы и css к входным данным?

4. @Dennis Спасибо за ваш ответ. Я опубликовал некоторый дополнительный соответствующий код, надеюсь, это поможет.

5. Я все еще не вижу причин, по которым это не должно работать. Есть ли шанс, что вы могли бы разместить ссылку на «рабочий» пример?

Ответ №1:

Мы нашли проблему. Оказывается, календарь на основе javascript крал наше внимание. Спасибо всем, кто откликнулся!