jquery paramètre caché de la valeur d'entrée ne fonctionne pas comme prévu dans IE7 et IE8

Poursuite de l'adoption de mon code fonctionne avec IE...

J'ai caché div contenant un formulaire pour modifier certaines informations. Lorsque l'utilisateur sélectionne l'élément à modifier, ce div est indiqué et que les champs sont remplis avec les informations de l'élément. Que les divs (de manière simplifiée) ressemble à ceci:

<div id="editform">
<form action="" method="post" id="qform" name="qform">
    First param: <input name="field1" id="field1"/> <br/>
    Second param: <input name="field2" id="field2"/> <br/>
    ...

    <input type="hidden" name="qid" id="qid" value=""/>

    <img id="submit" src="..." alt="..." title="..." />
</form>

J'utilise jquery pour définir les valeurs dans les champs. Ma fonction pour l'ouverture de l'édition div ressemble à quelque chose comme ceci:

function edit_item(item_id) {
    item = get_item(item_id);    //this will return a JS object
    $('#field1').val(item.property1);
    $('#field2').val(item.property2);
    ...
    $('#qid').val(item_id);
    $('#submit').click(function() {
        alert($('#qid').val());
        $('#qform').ajaxSubmit();
    });
}

Tout cela fonctionne très bien dans les FF, Opera, Webkit et IE 9, cependant dans IE7 et IE8, j'ai un problème étrange. Je peux voir le item_id définies correctement dans le edit_item fonction, cependant dès que la fonction se termine, le caché de la valeur d'entrée (qid) est remis à la chaîne vide. Lorsque le formulaire est en cours d'ajax-soumis, l'alerte indique la valeur à une chaîne vide, bien qu'il soit réglé correctement. Il est intéressant de noter, tous les autres champs sont beaux. Et elle fonctionne correctement sous IE 9.

Ce qui me manque ici? Merci beaucoup à l'avance.

Id doit être unique dans la spécification HTML. Vous avez des multiples de "#champ1". Aussi, les Id ne peut pas démarrer avec une marque de hachage. Voir: stackoverflow.com/questions/448981/...
Merci pour le commentaire, mais ce n'est pas le problème. Dans mon vrai code sont valide: ID unique et aucun signe dièse - fautes de frappe lors de la création simplifiée de code pour la question.
peut-être edit_item fonction a été congédié, une fois de plus avec un mauvais item_id paramètre? avez-vous essayé d'ajouter une alerte(item_id); ligne edit_item fonction?
Si c'était le cas, il ne serait pas travailler dans IE9 et les autres navigateurs, mais c'est bien dans tous sauf IE 7 et 8.

OriginalL'auteur Aleks G | 2012-05-18