Je construis une page qui est dinamically chargée avec ajax.Bizarre problème javascript
C'est ce que les appels de fonction jQuery '$.get'
(il se trouve sur une page HTML externe):
<script type="text/javascript">
$(function()
{
$('button').sb_animateButton();
$('input').sb_animateInput();
$('#settings_security_error').hide();
});
function check_passwords(password, password_confirm)
{
$('#settings_security_error').show();
alert('I\'m in funcion!'); // This works...
if(password.length < 4) // ... this doesn't
{
$('#settings_security_error').innerHTML = 'Password too short';
}
else
{
password = hex_md5(password);
password_confirm = hex_md5(password_confirm);
$.get('/engine/ajax/check_password.php?password=' + password + '$password_confirm=' + password_confirm,
{language: "php", version: 5},
function(result)
{
$('#settings_security_error').innerHTML = result;
},
'html');
}
}
</script>
<div class="title">Security</div>
<table class="sub_container">
<tr>
<td><label>Old password</label></td>
<td class="td_input"><input type="password" name="old_password"/></td>
</tr>
<tr>
<td><label>New password</label></td>
<td class="td_input"><input type="password"
name="new_password"
id="settings_security_new_password"
onkeyup="check_passwords(this.value, getElementById('settings_security_password_confirm').value)"/></td>
</tr>
<tr>
<td><label>Confirm password</label></td>
<td class="td_input"><input type="password"
name="new_password_confirm"
id="settings_security_password_confirm"
onkeyup="check_passwords(getElementById('settings_security_new_password').value, this.value)"/></td>
</tr>
<tr>
<td class="td_error" id="settings_security_error"></td>
</tr>
</table>
Et c'est là le code HTML externe est placé ...:
<div id="settings_appearance">
</div>
... à partir de ce bloc de javascript:
function get_page_content(page, target_id)
{
$.get('engine/ajax/get_page_content.php?page=' + page,
null,
function(result)
{
$("#"+target_id).html(result); // Or whatever you need to insert the result
},
'html');
}
Eh bien ... le problème est que t Il javascript dans le premier extrait est exécuté quand il est chargé par la fonction $.get
, mais je ne comprends toujours pas la raison pour laquelle lorsque je tape dans les boîtes de saisie rien ne se passe. Il doit écrire la sortie de la fonction javascript check_passwords(password, password_confirm)
dans <td class="td_error" id="settings_security_error"></td>
.
Merci de votre aide. Silvio
Si vous chargez/injectez dynamiquement HTML/JS dans la page, vous devrez également lier dynamiquement les événements. Mais je ne suis pas sûr de comprendre exactement ce qui ** fonctionne ** jusqu'à maintenant? Je ne pense pas que quelque chose devrait fonctionner après simplement charger l'extrait 1 dans #settings_appearance ... –
nvm ... mal compris –