JavaScript var restituendo l'oggetto Object quando dovrebbe essere restituisce un int o stringa

StackOverflow https://stackoverflow.com/questions/3522611

  •  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");
        }
    });
});
È stato utile?

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' }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top