2010-07-30 2 views
1

Je suis convaincu que cela a déjà été demandé et que j'ai trouvé pas mal de ressources sur ce sujet mais je suis toujours très confus et je ne sais pas trop comment procéder.Perdu avec .net et jQuery

J'ai une zone de texte dont les données que je dois envoyer à un serveur et j'ai besoin de capturer le résultat qui est une chaîne. Voici ma tentative:

$(document).ready(function() { 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = $('#txtinput').val() 
     $.post('Default.aspx', { func: "ParseData" }, function (data) { 
      $('#output-box').load(data).fadeIn(); 
     }); 
    }); 
}); 

Comment est-ce que je suis horriblement hors-jeu?

Répondre

2

Fermer, mais essayez ceci:

$(function() { // I like the shorthand way 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = $('#txtinput').val(); 
     $.post('Default.aspx', { func: "ParseData" }, function (data) { 
      $('#output-box').val(data).fadeIn(); // set the value to the returned data 
     }); 
     return false; // block the normal submit action 
    }); 
}); 

Fondamentalement, vous utilisez la fonction val() pour modifier la valeur de la zone de texte plutôt que des données « de chargement » en elle. En outre, vous devez renvoyer false à partir du gestionnaire d'événements ou vous pouvez envoyer la requête AJAX et pour effectuer l'action normale sur le formulaire.

Modifier: basé sur votre commentaire. Si vous devez d'abord appeler parseData, alors quelque chose comme ça pourrait être approprié.

$(function() { 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = parseData($('#txtinput').val()); 
     $.post('Default.aspx', { txtinput: input }, function (data) { 
      $('#output-box').val(data).fadeIn(); 
     }); 
     return false; 
    }); 
}); 
+0

+1 - bon point re 'return false'. Cela pourrait conduire un «copain» fou si ce n'est pas réalisé! –

+0

Merci pour la réponse mais je suppose que je n'ai pas suffisamment clarifié ma question. Quand je mets dans func: "ParseData", mes données de formulaire vont-elles être envoyées à la fonction? Aussi, j'ai attrapé le contenu de la boîte de texte, mais j'ai oublié de faire quelque chose avec eux - est quelque chose comme func: "ParseData (entrée)" approprié? – Radu

+0

@Radu - comme vous l'avez maintenant, 'func' sera passé comme paramètre de requête avec' parseData' comme valeur. Si parseData est une fonction javascript, vous devriez l'appeler et transmettre le résultat au serveur comme paramètre approprié. Je vais mettre à jour avec un exemple. – tvanfosson