2012-07-26 3 views
2

besoin d'un peu d'aide. Mon jQuery se passait bien aujourd'hui jusqu'à ce que je frappe un mur. J'essaie d'avoir plusieurs formulaires (éléments de campagne individuels) modifiables à la volée via AJAX, avec un lien de soumission de texte ou une sorte de bouton de soumission. Le problème est, je peux l'obtenir pour soumettre le formulaire via l'AJAX, mais sans aucune des données du formulaire ... c.-à-d. Hit submit, il envoie la requête, mais pas de chaîne de requête. Quelqu'un peut-il m'aider s'il vous plaît à identifier ce qui manque?jquery ajax soumission de formulaire multiple

Voici mon jquery:

 $('.submitLineChanges').click(function() { 
      var formID = $(this).closest('form').attr('ID') 
      datastring = $(formID).serialize(); 
      $.ajax({ 
        type:'POST', 
        url: 'update_ajax.asp', 
        data: datastring, 
        success: function(response) { 
         alert("Success " + id) 
        //$('#ContactForm').find('.form_result').html(response); 
       }//end ajax options 
      });//end ajax 
      return false; 
     });//end of click function 

Et ma forme:

<form id="line-item-<%= intRecID %>-form" class="submitLineForm"> 
     <input type="hidden" name="UpdateLineItem" value="true" /> 
     <span class="edit" id="edit-line-<%= intRecID %>" style="display: none;"> 
      <span class="quantity"><input name="part_qty" id="part_qty_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_qty"),0)%>"></span> 
      <span class="partno"><input name="part_no" id="part_no_<%= intRecID %>" type="text" value="<%=rs("quote_part_id")%>"></span> 
      <span class="descrip"><Textarea name="part_descrip" type="text" id="descrip<%= intRecID %>" rows="3"><%=rs("quote_part_descrip")%></Textarea></span> 
      <span class="sellprice">$<input name="part_sale" id="part_sale_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_sale"),2)%>"></span> 
      <span class="margin" id="emargin_<%= intRecID %>"><%=margin%></span> 
      <span class="cost"><strong>Cost: </strong>$<input name="part_cost" id="part_cost_<%= intRecID %>" type="text" value="<%=FormatNumber(cost,2)%>"></span> 
      <span class="wt"><strong>Weight: </strong><input name="part_wt" id="part_wt_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_wt"),2)%>"></span> 
      <span class="update"><input type="button" value="Save Changes" class="submitLineChanges" /></span> 
     </span> 
    </form> 

Comme vous devriez être en mesure de dire, je suis en cours d'exécution dans cette ASP. Le formulaire est pour chaque élément de ligne dans un panier essentiellement. En raison de la nature de la page, je ne veux pas avoir une page séparée pour éditer toutes les informations. Il semble que cela devrait fonctionner, mais il est probable qu'il me manque quelque chose à travers la vision tunnel dans laquelle je suis maintenant.

Je devrais noter, la forme est pour chaque ligne, je n'en ai pas besoin pour soumettre toutes les formes, juste une.

Merci

Répondre

4

Changer

datastring = $(formID).serialize(); 

à

var datastring = $('#' + formID).serialize(); 

Vous devez utiliser un préfixe # à l'aide du sélecteur d'ID. En outre, sans le mot clé var, vous polluez l'espace de noms global sans raison.

Ou encore mieux ... vous pouvez remplacer

var formID = $(this).closest('form').attr('ID'); 
var datastring = $('#' + formID).serialize(); 

avec

var datastring = $(this).closest('form').serialize(); 

qui trouve la form et sérialise tout en une seule fois !!

Merci à @MikeBrant pour cette suggestion.

+1

Ou simplement combiner ces deux lignes à datastring = $ (this) .closest ('form'). Serialize(); –

+0

@MikeBrant suggestion fine .... ajouté pour répondre :-) – ManseUK

+0

J'ai raté cela, merci ... tant de révisions, et j'ai oublié de le réparer. Toujours avoir le problème bien qu'il ne passe pas de données à travers. Des pensées? – hatrickwah

Questions connexes