2

ウェブサイトをjquerymobileに転送しようとしていますが、次を使用するとエラーが発生します。

$('#information').load('getRegister.php'  , function() {
                    $('#preloader').hide(); 
                });

この関数は、更新せずにHTMLコードを動的にページにロードするために呼び出されますが、表示されるコードは、既にWebサイトにあるコードのcssと一致しません。以下のスクリーンショットでこれを見ることができますここに画像の説明を入力してください

ボタンとテキストフィールドが、ページにすでにロードされているフォームのスタイルを採用していない理由に、私はかなり困惑しています。.loadが呼び出すコードは、次のphpファイルです。

<?php
  require ('myConnectDB.inc.php');     

// echo registration form

echo "

<p class=\"center\"> &nbsp;</p>

<form name=\"input2\" action=\"\" onsubmit =  \" return register()\" method=\"post\"  data-ajax=\"false\">
                    <p class=\"center\"> User Name: 
                    <input type=\"text\" name=\"user\"  id=\"userRegister\" /></p>
                    <p class=\"center\"> &nbsp;</p>
                    <p class=\"center\"> Email: 
                    <input type=\"text\" name=\"user\"  id=\"emailRegister\" /></p>
                    <p class=\"center\"> &nbsp;</p>
                    <p class=\"center\"> Password: <input type=\"password\" name=\"password\" id=\"passwordRegister1\" /></p> 
                    <p class=\"center\"> &nbsp;</p>
                    <p class=\"center\"> Re-Type Password: <input type=\"password\" name=\"password\" id=\"passwordRegister2\" /></p> 
                    <p class=\"center\"> &nbsp;</p>
                    <p class=\"center\"> 
                    <input type=\"submit\"  class=\"  button blue\" name = \"login\" value=\"Register\" />
                    </p>
            </form>";   
?>
4

2 に答える 2

1

create新しく追加されたコンテンツでイベントをトリガーする必要があります。

ドキュメントから

クライアント側で新しいマークアップを生成するか、AJAXを介してコンテンツを読み込んでページに挿入する必要がある場合は、createイベントをトリガーして、新しいマークアップに含まれるすべてのプラグインの自動初期化を処理できます。これは、任意の要素(ページdiv自体も含む)でトリガーできるため、各プラグインを手動で初期化する手間が省けます(以下を参照)。

たとえば、HTMLマークアップのブロック(ログインフォームなど)がAjaxを介して読み込まれた場合、createイベントをトリガーして、そこに含まれるすべてのウィジェット(入力)を自動的に変換します。

およびこの場合のボタン)を拡張バージョンに追加します。このシナリオのコードは次のようになります。

$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );

あなたの場合、あなたはおそらく次のようなものをしたいと思うでしょう

$('#information').load('getRegister.php'  , function() {
        $('#preloader').hide(); 
        $('#information').trigger("create");
 });
于 2013-01-18T04:57:28.710 に答える
0

これは、新しいhtmlが、元のフォームまたは元のスタイルシートが使用するネストされたdiv構造と同じクラス属性を提供していないことが原因である可能性があります。

元のテキストフィールドのclass属性を確認し、それらを一致させます。または、スタイルシートを見て、HTMLのレイアウト方法を確認してください。

于 2013-01-18T04:55:27.640 に答える