JavaScript var restituendo l'oggetto Object quando dovrebbe essere restituisce un int o stringa
-
29-09-2019 - |
Domanda
Ho due funzioni AJAX e uso il primo a passare alcuni dati al secondo tuttavia quando guardo il POST, vedo che per la variabile mi viene mandato io sono sempre oggetto dell'oggetto restituito come il valore della variabile e non quello che mi aspettavo una stringa o un int. Gli sguardi javascript come questo,
$('.career_select .selectitems').click(function(){
var selectedCareer = $(this).attr('title');
$.ajax({
type: 'POST',
url: '/roadmap/step_two',
data: 'career_choice='+selectedCareer+"&ajax=true&submit_career=Next",
success: function(html){
$('.hfeed').append(html);
$('#grade_choice').SelectCustomizer();
}
});
});
$('#grade_choice_options .selectitems').live('click', function(selectedCareer){
var selectedGrade = $('#grade_choice_customselect').val();
$.ajax({
type: 'POST',
url: '/roadmap/step_two',
data: 'career_choice='+selectedCareer+'&grade='+selectedGrade+"&ajax=true&submit_grades=Next",
success: function(html){
window.location.replace("/roadmap/your_map");
}
});
});
Soluzione
Nella seconda selectedCareer
funzione è l'oggetto evento passato al metodo da jQuery, è probabile che desidera utilizzare this
per ottenere gli elementi che è stato fatto clic, ad esempio, $(this).val()
per input di $(this).text()
per ottenere il testo di un elemento.
Inoltre è possibile passare i dati un un oggetto, soprattutto se si tratta di un valore complesso (ad esempio può contenere una &
), in questo modo:
data: { career_choice: $(this).val(),
grade: selectedGrade,
ajax: 'true',
submit_grades: 'Next' }