Après le texte de la valeur d'entrée à l'ajax

J'ai une fonctionnelle AJAX post c'est génial de travailler. Mon client a demandé un supplément de champ de saisie de texte, et pour la vie de moi, je ne peux pas l'obtenir. Le script est long donc je vais vous donner pertinentes bits dans l'espoir que c'est une question de syntaxe.

HTML pour mon entrée:

<input type="text" name="why" id="why" maxlength="70">

Appel Javascript

$(document).on("click", ".take-claim-link", function(){
var id= $(this).attr('data-id');    
var point= $(this).attr('data-point');
var val= $(this).attr('data-val');  
var type = $(this).attr('data-type');
var why = $("#why").val();

var follow = document.getElementById("follow-" + id + "-"+ type);
var followuser='0';
if (follow.checked) {
    var followuser = "1";
}


var takeurl = '/api/responseClaim.json';
var newPrice ='';   

var newData = $.ajax({ 
    type: "POST",
    url: takeurl,
    dataType: "json",
    data: { point: point, claimId: id, type: val,why: why,follow: followuser }
    })
(etc).

Il ne retourne rien pour les "pourquoi".

La drôle de chose: si je change la variable à var why = 'sample why'; il passe. De même, si je change mon entrée à <input type="text" name="why" id="why" maxlength="70" value="some value"> de la lecture. Je pense donc que le problème est dans la façon dont je suis le définir.

Mais quoi? J'ai aussi essayé de var why = $("input#why").val(); et document.getElementById("why").value;

Assurez-vous que vous ne disposez d'aucun autre élément avec why comme id
Oui, bien sûr. Je suis un idiot. Je vous remercie.

OriginalL'auteur dilettante | 2013-07-13