0

私が編集しているサイトには検索フォームがあります。記録のために、サイト、連絡先などには他にもいくつかのフォームがあります。これは問題のある唯一のものです。

フォームを送信すると、スタイルの一部が IE9 で失われます (おそらく他のバージョンの IE ではまだテストされていません)。主に、html と body で設定された余白と色が失われているように見えます。メニュー、バナー、テキストなどはすべてスタイルを保持しているように見えます。すべてのスタイルが 1 つのシートにあり、ここで使用されています...

役立つアドバイスはありますか?

これが検索ページの内容と、フォームのチェックに使用された php です。

編集: このページは検索ページで、ほとんど何もありません。検索機能からの結果を表示しながら、検索は同じページをリロードします。したがって、同じ埋め込みシートを埋め込む必要があります。私が見る限り、同じhtmlが表示されます...これが議論に役立つ場合。ある種のエラーを見つけるためにまだふるいにかけています。IE開発ツールは、IE7-8で表示すると、以前のバージョンのIEでもこのエラーが発生することを示しているようです...

HTML:

<div id="search">
        <br />
            <div style="float:right;font-size:.8em;">
                <form name="form_sidesearch" action="search.html" method="post">
                <input type="hidden" name="action" value="search" />
                <input type="text" name="search_value" value="<?php echo $systems_primary->search_value ?>" />
                <input type="submit" name="submit_search" value="Search Website" />
                </form> <br />

            </div>
    </div>

<?php echo stripslashes($search_results);

PHP:

<?php

// -- Begin Search --------------------------------------------------------------------------------------
if($_REQUEST["action"] === "search")
{
  if(strlen($_REQUEST["pg"]) <= 0)
  {

  $_REQUEST["pg"] = 1;
  }

  $search_results = $systems_primary->search_website("index",urldecode($_REQUEST["search_value"]),"<div class=\"listing ui-corner-all\"><a href=\"{ENTRY_URL}\" title=\"{ENTRY_TITLE}\" class=\"listing_title\">{ENTRY_TITLE}</a>{ENTRY_CONTENT} <a href=\"{ENTRY_URL}\" title=\"{ENTRY_TITLE}\" style=\"font-size:.8em;\">...read more</a></div><br /><br />",345,"all",10,$_REQUEST["pg"]);
}

// -- End Search ----------------------------------------------------------------------------------------
?>

THE LOST CSS (もっとあるかもしれません):

html {
background-color:#F6E6C8;
font-size:16px;
font-family:Helvetica;
}
body {
    width:1027px;
    margin:0 auto;
    background-color:#ffffff;
    font-family: arial, 'times new roman', sans-serif;
}

詳細: 実際には、自動マージンを使用して中央に配置するのではなく、ページ コンテンツ全体が左にシフトされ、左揃えのままになります。さらに、html の背景色が失われます。検索フィールドのスタイルも失われるか無視されます。他に何が変更される可能性があるかはわかりません。

4

2 に答える 2

0

あなたはこのようなことをすることができます...

$('#yourForm").on('submit',function(e){
 $(this).css({
 // reasign all the atributes you lost
 });
 e.preventDefault();
});
于 2012-07-04T17:47:38.330 に答える
0

通常、フォームの送信後にスタイリングが失われる場合、特にそれがページ全体のリロードではなく Ajax 操作である場合は、JavaScript または jQuery を使用して適用されたスタイリングが、ページの更新部分がリロードされたときに再適用されなかったことが原因です。これには、追加の要素の作成や、1 つ以上の要素への CSS クラスの追加が含まれる場合があります。

これは特に、HTML フォーム要素のスタイリングで発生する可能性があります。特定のフォーム要素の高度なスタイリングは、JavaScript または jQuery の助けを借りてのみ行うことができる場合があるためです。

このような場合、ページが最初に読み込まれたときに関連するコンテンツのスタイルを設定した JavaScript または jQuery を特定し、ページが更新された後 (Ajax 呼び出しが正常に完了した後、またはブラウザーがページを再読み込みした後、または新しいページ)。

それができない場合は、前後のページの HTML を比較して、何が変わったのかを確認してください。body タグに CSS クラスが存在するか、一貫して設定されていないコンテナー クラスが存在する可能性があります。新しいページが読み込まれると、別の CSS ファイル セットがダウンロードされるか、あるページには含まれていて別のページには含まれていないスタイル シートが埋め込まれている可能性があります。

それができない場合は、HTML と CSS が有効であることを確認してください。一部のブラウザは、無効なコードをレンダリングする際に他のブラウザよりも寛容です。ブラウザのバグのように見えるものは、悪いコードが原因である可能性があります。

それでも問題が解決せず、問題の原因が不明瞭なブラウザのバグである可能性がますます高まっているように思われる場合は、コードを可能な限り単純な状態に減らして、問題を一貫して再現できるようにし、問題の原因をより明確に特定しようとします。バグの性質です。これにより、可能な修正を検索したり、助けを求めたりすることが容易になります。コードを削減する過程で、問題が突然消えた場合、最後に削除されたコードが少なくとも部分的に問題の原因であることが判明する可能性があります。

逆に、問題に理由がないように思われる場合は、コードを最初から再実装して、問題がまだ発生するかどうかを確認することが役立つ場合があります。コードの作成中に問題が発生し始めた場合、同様に、最後に追加されたコードが少なくとも部分的に問題の原因である可能性があります。

于 2012-07-04T14:09:46.983 に答える