以下のコードは、単純に Ajax 経由でフォームを送信し、addNewUser.php スクリプトからの結果を小さなポップアップ ウィンドウに追加します。
//activate the signup submit button
$('#button_signup_submit').click(function() {
document.getElementById("popup_signup").style.display = "none";
document.getElementById("popup_signup_step_two").style.display = "block";
//submit the form info via ajax to addNewUser.php
$.ajax({
type: "POST",
url: "ajax/addNewUser.php",
data: {
username: document.forms["form_signup"]["username"].value,
password: document.forms["form_signup"]["password"].value
},
datatype: "html",
success: function(data){
var jqObj = jQuery(data);
$('#popup_signup_step_two').append(jqObj)
}
});
});
上記のスクリプトを取得して、ajax された html を元の Web ページに問題なく追加できます...しかし、2 番目のコードを使用すると、次のようになります。
//activate the second signup page's return button
$('#return_to_signup_form_from_ajax_popup').click(function() {
alert("HEY");
//erase innerHtml of popup_signup_step_two
document.getElementById("popup_signup_step_two").innerHTML = "";
document.getElementById("popup_signup_step_two").style.display = "none";
//show the original signup form again, should contain user's original values
document.getElementById("popup_background").style.display = "block";
document.getElementById("popup_login").style.display = "block";
});
...これは、新しく追加された html で動作する jQuery スニペットです...何も起こりません。この 2 番目のコードは、ユーザーがユーザー名またはパスワードの入力を忘れ、ajax 経由で次のメッセージが表示された場合に適用されます。
<p>Go <span id="return_to_signup_form_from_ajax_popup">back</span> and enter a username and password.</p>
これはすべてDOMと関係があると思いますか?でも結局わからない。誰かが私に何を探すべきかを教えてくれさえしたら、私はそれを大いに感謝します.