2009-11-30 5 views

Répondre

1

essayer aller chercher l'entrée: à la place du texte .val()

+0

Une bonne idée , oui, mais n'a rien à voir avec la raison pour laquelle la fonction siblings() ne trouve rien. – tvanfosson

2

Vous ne semblez pas avoir une compréhension correcte de l'opérateur frères et sœurs(). Vous n'utilisiez pas non plus la fonction val() de jQuery et manquiez des points sur certains de vos noms de classe. Pour localiser la classe address1 vous devez faire ce qui suit:

var $checkbox = jQuery(this); 
$checkbox.parent().siblings('.formField').find('.address1'); 

De plus, vous voulez que l'alerte soit

alert($checkbox.parent().siblings('.formField').find('.address1').val()); 

pour alerter la valeur de la zone de saisie.

VERSION FIXES ET OPTIMISE:

function update_address(eventObject) { 
    var $checkbox = jQuery(this); 
    var $siblings = $checkbox.parent().siblings('.formField'); 
    if ($checkbox.attr('checked')) { 
     $siblings.find('.address1').val($('.hidden_address1').val()); 
     $siblings.find('.address2').val($('.hidden_address2').val()); 
     $siblings.find('.city').val($('.hidden_city').val()); 
     $siblings.find('.state').val($('.hidden_state').val()); 
     $siblings.find('.zip').val($('.hidden_zip').val()); 
     $siblings.find('.province').val($('.hidden_province').val()); 
     $siblings.find('.country').val($('.hidden_country').val()); 
    } else { 
     $siblings.find('.address1').val(''); 
     $siblings.find('.address2').val(''); 
     $siblings.find('.city').val(''); 
     $siblings.find('.state').val(''); 
     $siblings.find('.zip').val(''); 
     $siblings.find('.province').val(''); 
     $siblings.find('.country').val(''); 
    }  
} 
0

Parce que <input class="address1"/> n'est pas un frère de <input id="parent_sameAsBefore"/>. Je pense que vous voulez:

checkbox.parent().parent().find('.address1'); 
1

Sur la ligne 9, devrait-il pas var checkbox = $(this); à la place? Je n'ai pas vu la fonction jQuery() utilisée comme ça.

+0

urm ... jQuery === $ – James

+2

Peut-être utiliser jQuery en mode 'noConflict', plus ici: http://docs.jquery.com/Using_jQuery_with_Other_Libraries – Pablo

+0

vous savez que $ == jQuery? –

-1

alerte (checkbox.siblings ('.adresse1') .html()); // Cela doit être

alerte (checkbox.parent(). Siblings ('.adresse1') .html());

// Checkbox ne pas frères et soeurs Ligne 10

+0

'' les éléments sont supposés être vides. En HTML, vous n'avez pas besoin de les fermer explicitement, mais en XHTML vous devez les "fermer eux-mêmes". c'est-à-dire '' – James

+0

@ J-P: Merci pour l'observation. Il essaie d'obtenir les frères et soeurs de la case à cocher. Il aura une cause null car checkbox n'a pas de frères et soeurs. – Tebo

0

Pourquoi ne pas simplement aller à trouver les champs de formulaire en utilisant un chemin absolu? À moins que votre DOM ne soit très compliqué (et que vous ayez besoin de chemins relatifs), je préférerais cette approche moi-même.

Utilisez également .val() pour obtenir et définir des valeurs.

function update_address(eventObject) { 
    if($(this).attr('checked')) { 
    $('#parent_address1').val($('hidden_address1').val()); 
    $('#parent_address2').val($('hidden_address2').val()); 
    $('#parent_city').val($('hidden_city').val()); 
    $('#parent_state').val($('hidden_state').val()); 
    $('#parent_zip').val($('hidden_zip').val()); 
    $('#parent_province').val($('hidden_province').val()); 
    $('#parent_country').val($('hidden_country').val()); 
    }  
    else { 
    $('#parent_address1').val(""); 
    $('#parent_address2').val(""); 
    $('#parent_city').val(""); 
    $('#parent_state').val(""); 
    $('#parent_zip').val(""); 
    $('#parent_province').val(""); 
    $('#parent_country').val(""); 
    }  
} 

Remarque, semble être un bug dans le code original dans la ligne 15:

checkbox.siblings('.tate').value = $('hidden_state').value; 

devrait être:

checkbox.siblings('.state').value = $('hidden_state').value; 
+0

Si le mode noConflict est activé, il suffit de remplacer $ par jQuery dans le code ci-dessus –

+0

probablement checkbox.siblings ('. State'). Val() = $ ('hidden_state'). Val(); ??? –

+0

Ce serait mieux, mais l'erreur est le 's' manquant dans l'état :) –

Questions connexes