JavaScript pour effacer le champ de formulaire sur soumettre avant la soumission du formulaire au script perl

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

Question

Nous avons une forme très longue qui a un certain nombre de champs et 2 boutons de soumission différents. Lorsqu'un utilisateur clique sur le 1er bouton Soumettre ("Recherche de photos"), le formulaire doit publier et notre script fera une recherche de photos correspondantes en fonction de ce que l'utilisateur est entré dans l'entrée du texte ("Photo_Search_Text") à côté du 1er bouton Soumettre et Recharger l'ensemble du formulaire avec des photos correspondantes ajoutées au formulaire. En cliquant sur le 2ème bouton Soumettre ("Enregistrer les modifications") à la fin du formulaire, il doit publier et notre script doit mettre à jour la base de données avec les informations que l'utilisateur a saisies dans le formulaire.

Malheureusement, la disposition du formulaire rend impossible la séparer en 2 formes distinctes. J'ai vérifié l'intégralité du post du formulaire et malheureusement, les champs soumis sont identiques au traitement du script Perl Traitement de la soumission du formulaire, quel que soit le bouton de soumission cliqué afin que le script Perl ne puisse pas différencier l'action à effectuer en fonction du bouton de soumission. La seule chose à laquelle je peux penser est de mettre à jour l'action onClick du 2ème bouton de soumission afin qu'il efface le champ "Photo_Search_Text" avant la soumission du formulaire, puis effectuez une recherche de photos uniquement si ces champs ont une valeur.

Sur la base de tout cela, ma question est à quoi ressemble le JavaScript qui pourrait effacer le champ "Photo_Search_Text" lorsque quelqu'un clique sur le 2e bouton Soumettre? Voici ce que j'ai essayé jusqu'à présent dont aucun n'a fonctionné avec succès:

<input type="submit" 
       name="submit" 
       onclick="document.update-form.photo_search_text.value='';" 
       value="Save Changes"
>

<input type="submit" 
       name="submit" 
       onsubmit="document.update-form.photo_search_text.value='';" 
       value="Save Changes"
>

<input type="submit" 
       name="submit" 
       onclick="document.getElementById('photo_search_text')='';" 
       value="Save Changes"
>

Nous utilisons également jQuery sur le site, donc s'il existe un moyen de le faire avec jQuery au lieu de Plain JavaScript, n'hésitez pas à fournir un exemple de code pour cela à la place. Enfin, s'il existe un autre moyen de gérer cela que je ne pense à aucune et que toutes les suggestions seraient les bienvenues.

Merci d'avance pour votre aide!

Était-ce utile?

La solution

Une raison possible est que vous avez besoin d'un objet CamLQuery comme paramètre lorsque vous appelez List.GetITems () ( msdn ).Si vous le manquez, vous obtiendrez une "erreur inconnue" de Args.get_Message ().
Donc, pour le faire fonctionner, vous pouvez simplement initialiser un nouvel objet CamLQuery et modifier votre code à:

var context = new SP.ClientContext(appweburl);
var appContextSite = new SP.AppContextSite(context, hostweburl);
var list = appContextSite.get_web().get_lists().getByTitle('List1');
var query = new SP.CamlQuery();
itemsInlist = list.getItems(query);
context.load(itemsInlist);
context.executeQueryAsync(....)

Si vous souhaitez prendre en charge le filtrage ou le tri dans la requête, vous pouvez appeler:

query.set_viewXml("your caml");  

avant List.GetItems (Query).Pour plus d'informations sur la procédure de récupération des éléments de la liste, vous pouvez vérifier Ici .J'espère que c'est utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top