Pourquoi la ligne 10 renvoie-t-elle une valeur nulle?Remplacement des champs par jQuery
il fonctionne avec la ligne 40
Pourquoi la ligne 10 renvoie-t-elle une valeur nulle?Remplacement des champs par jQuery
il fonctionne avec la ligne 40
essayer aller chercher l'entrée: à la place du texte .val()
Une bonne idée , oui, mais n'a rien à voir avec la raison pour laquelle la fonction siblings() ne trouve rien. – tvanfosson
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('');
}
}
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');
Sur la ligne 9, devrait-il pas var checkbox = $(this);
à la place? Je n'ai pas vu la fonction jQuery() utilisée comme ça.
alerte (checkbox.siblings ('.adresse1') .html()); // Cela doit être
alerte (checkbox.parent(). Siblings ('.adresse1') .html());
// Checkbox ne pas frères et soeurs Ligne 10
'' 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
@ 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
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;
Si le mode noConflict est activé, il suffit de remplacer $ par jQuery dans le code ci-dessus –
probablement checkbox.siblings ('. State'). Val() = $ ('hidden_state'). Val(); ??? –
Ce serait mieux, mais l'erreur est le 's' manquant dans l'état :) –
Checkbox ne pas frères et soeurs sur la ligne 10 – Tebo