JQuery. Submit для автологина работает в FF, Chrome ... не IE - PullRequest
0 голосов
/ 26 октября 2010

У меня есть внутреннее приложение для ящиков для предложений, в котором все пользователи могут иметь одинаковые имя пользователя и пароль.

, поэтому я делаю автологин с помощью формы jquery submit ... это прекрасно работает в FF и Chrome, нов IE .. он заполняет значения в полях формы пользователя / пароля .. делает отправку .. и затем просто делает это снова и снова .. (приложение bbPress из WordPress) .. большое спасибо

Форма входа:

<input name="user_login" type="text" id="quick_user_login" size="13" maxlength="40" value="USER_NAME_HERE" />

<?php _e( 'Password' ); ?><br />
<input name="password" type="password" id="quick_password" size="13" maxlength="40" tabindex="2" value="PASSWORD_HERE" />

<input name="re" type="hidden" value="<?php echo $re; ?>" />

jquery:

<script>
$(document).ready(function(){ 
    jQuery("#loginform").submit();
});
</script>

Полная форма входа (код акции bbPress):

<form class="login" method="post" id="loginform" action="<?php bb_uri( 'bb-login.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_USER_FORMS ); ?>">
    <p>
        <?php
    printf(
        __( '<a href="%1$s">Register</a> or log in - <a href="%2$s">lost password?</a>' ),
        bb_get_uri( 'register.php', null, BB_URI_CONTEXT_A_HREF + BB_URI_CONTEXT_BB_USER_FORMS ),
        bb_get_uri( 'bb-login.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_USER_FORMS )
    );
    ?>

    </p>
    <div>
        <label>
            <?php _e('Username'); ?><br />
            <input name="user_login" type="text" id="quick_user_login" size="13" maxlength="40" value="USER_NAME_HERE" />
        </label>
        <label>
            <?php _e( 'Password' ); ?><br />
            <input name="password" type="password" id="quick_password" size="13" maxlength="40" tabindex="2" value="PASSWORD_HERE" />
        </label>
        <input name="re" type="hidden" value="<?php echo $re; ?>" />
        <?php wp_referer_field(); ?>

        <input type="submit" name="Submit" class="submit" value="<?php echo esc_attr__( 'Log in &raquo;' ); ?>" tabindex="4" />
    </div>
    <div class="remember">
        <label>
            <input name="remember" type="checkbox" id="quick_remember" value="1" tabindex="3"<?php echo $remember_checked; ?> />
            <?php _e('Remember me'); ?>

        </label>
    </div>
</form>

Ответы [ 3 ]

1 голос
/ 26 октября 2010

попробуйте это:

jQuery("#loginform").trigger("submit");

Просто предположение.

0 голосов
/ 26 октября 2010

Итак, это страница с предварительно заполненными значениями, которая будет автоматически опубликована сразу после загрузки страницы.

Мой один большой вопрос: почему вы используете для этого JQuery?Эта функциональность может быть просто отлично реализована с помощью старого старого javascript, и она будет быстрее (ей не нужно загружать JQuery для работы) и будет более надежной (это очень старая техника, поэтому она будет работать в любом браузере, который вы можетебрось на него, если у него, конечно, включен JavaScript!)

<form name='loginform'>
  .......
</form>
<script>
  document.forms['loginform'].submit();
</script>
0 голосов
/ 26 октября 2010

Возможно, это не идеальное решение, а рабочее решение (по крайней мере, на данный момент).Создайте кнопку отправки (если она у вас уже есть, вы можете ее пропустить).Добавьте его, щелкните по нему, удалите.Должно работать в IE (и во всех других браузерах).

$('input').attr('type', 'submit').css('display', 'none')
          .appendTo('#loginForm').click().remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...