質問

必要に応じてログイン フォームを渡すために PHP を使用しています。コードは次のとおりです。

$htmlForm = '<form id="frmlogin">'.'<label>';
switch(LOGIN_METHOD)
{
    case 'both':
        $htmlForm .= $ACL_LANG['USERNAME'].'/'.$ACL_LANG['EMAIL'];
        break;
    case 'email':
        $htmlForm .= $ACL_LANG['EMAIL'];
        break;
    default:
        $htmlForm .= $ACL_LANG['USERNAME'];
        break;
}                       

$htmlForm .= ':</label>'.
             '<input type="text" name="u" id="u" class="textfield" />'.
             '<label>'.$ACL_LANG['PASSWORD'].'</label>'.
             '<input type="password" name="p" id="p" class="textfield" />'.
             '<center><input type="submit" name="btn" id="btn" class="buttonfield" value="Sign in to extranet" /></center>'.
             '</form>';

return $htmlForm;

問題は、ユーザーが IE8 で Enter キーを押してもフォームが送信されず、ユーザーは送信ボタンを押す必要があることです。

これを修正するにはどうすればよいですか?

役に立ちましたか?

解決

これが本当の問題であり、あなたは常にフォームのonkeypressイベントを行い、入力します。キーが押されたかどうかを確認することができ、別の解決策を見つけることができません。

場合

編集: ここでは、正しいコードはマシンの答えに応じています:

$htmlForm .= ':<form><label>'.$ACL_LANG['USERNAME'].'</label>'.
                                     '<input type="text" name="u" id="u" class="textfield" />'.
                                     '<label>'.$ACL_LANG['PASSWORD'].'</label>'.
                                     '<input type="password" name="p" id="p" class="textfield" />'.
                                     '<center><input type="submit" name="btn" id="btn" class="buttonfield" value="Sign in to extranet" /></center>'.
                                     '</form>';

EDIT 2: あなたのHTMLは有効です。 こののnoreferrer">

他のヒント

クリックをシミュレートします。

ここで私はjQueryの中でそれを行う方法です。

// Recreating normal browser behavior in Javascript. Thank you, Microsoft.
jQuery.fn.handle_enter_keypress = function() {
  if ($.browser.msie){
    $(this).find('input').keypress(function(e){
      // If the key pressed was enter
      if (e.which == '13') {
        $(this).closest('form')
        .find('button[type=submit],input[type=submit]')
        .filter(':first').click();
      }
    });
  }
}

$('form').handle_enter_keypress();

ここに Microsoft のリンクがあります。これはあなたのために光を当てるかもしれません。

リンクをざっと読むと、実際には Enter キーによるフォーム送信のバグと考えられるかもしれませんが、これは Microsoft によって IE8 用に修正されると思われます。

Enter キーを使用してフォームを送信するときの IE の異常

編集:

現在は削除されていますが、もう一つ リンク もう一度カバーします(ページの下部)。 2008 年 12 月 18 日の IE ブログで定義し、バグについて説明しました。.

あなたは自分のコードスニペットから省略された開口部のformタグを持っていますか?

action要素にform属性は、HTMLの仕様によって必要とされます。多分それは良い仕事でしょう。

私はアクションと方法で、同様にこれを再現することができました。ページ上の他のすべてのコードを剥奪し、それはまだ生産されます。しかし、私が見てきたフォームは、=「」

アクションとIE8で働きます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top