J'ai commencé à jouer avec jQuery hier. J'ai eu envie de le faire pendant une longue période, depuis Paul Grenier commence à écrire sa série sur jQuery pour les utilisateurs finaux à la vénérable www.endusersharepoint.com site Web. Que je l'utilise, Je souhaite ajouter qu'une série de « Rapide et facile » messages comme celui-ci. Ce billet décrit comment définir la valeur d'un champ texte connu pour tout ce que vous voulez.
Dans ce scénario, J'ai créé une liste personnalisée « nouveau » dont la forme ressemble comme illustré:
C'est le nouveau formulaire pour obtenir une liste personnalisée avec la colonne de titre par défaut et deux colonnes de la liste (pas de colonnes de site; Je ne pense pas qu'elle doit rendre toute différence).
L'objectif est d'attribuer une valeur arbitraire au champ, « DefaultMeFieldNoSpaces » (vous pouvez dire que je suis un peu lâche avec la chose « sans espaces », mais je le spice up à la fin de cet article).
Ce bit de jQuery a fonctionné pour moi:
<script type ="text/javascript"> $(fonction() { $(« d'entrée[titre = DefaultMeFieldNoSpaces]').attr( {valeur: « Vous êtes dans un labyrinthe de passages en twisty, tous semblables. »}); }); </script>
Comme je comprends ce bit de jQuery est dit, "Trouvez-moi une entrée tag dont le titre = DefaultMeFieldNoSpaces. Puis, Set toutes leurs valeurs à une phrase célèbre d'un vieux jeu. »
Puisqu'il ne sera un champ du formulaire avec un titre égal à « DefaultMeFieldNoSpaces » nous sommes assuré d'assigner une valeur à ce champ et aucun autre.
Qu'en est-il un champ dont le nom comporte des espaces qu'il? C'est presque pareil:
<script type ="text/javascript"> $(fonction() { $(« d'entrée[titre = attribuer le domaine avec espace]').attr( {valeur: « Vous êtes dans un labyrinthe de passages en twisty, tous semblables. »}); }); </script>
Je pense que c'est une approche assez sûre, ce qui signifie que nous devrions être capables de trouver le domaine que nous voulons et seul le champ nous voulons. Si vous regardez le HTML SharePoint nous donne, C'est le genre de désordre:
<entrée nom= « ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04 ctl00$ ctl00$ $TextField" type= "texte" MaxLength= "255" ID= ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"" titre= DefaultMeFieldNoSpaces"" classe= « ms-long" />
« titre » se démarque comme un attribut reconnaissable et unique j'espère que pour nous aider à identifier la colonne spécifique à laquelle nous voulons affecter notre valeur arbitraire.
Il s'agit d'un concept fondamental. Définissant un champ d'une manière arbitraire comme ça ne va pas gagner à tout prix. Cependant, Si nous voulons faire plus intéressant stuff de niveau formulaire (que chacun d'entre nous veulent toujours faire, Bien sûr, juste après que nous terminer la vaisselle), comme modifier la valeur de « champ b » automatiquement basé sur la valeur de "champ un », Nous avons (JE) besoin d'apprendre ces choses.
Je pense que la meilleure chance d'obtenir une valeur réelle utile ici est via le titre, au moins pour les champs texte. Il peut y avoir une meilleure, approche plus fiable. Si je le trouve, Je vais mettre à jour ce post. Si vous connaissez une meilleure façon, Veuillez laisser un commentaire.</fin>
</fin>
Me suivre sur Twitter à http://www.twitter.com/pagalvin
Bonjour Paul – Je suis tombé sur votre post alors que des recherches pour un problème similaire :-
Définir une durée par défaut pour les nouveaux événements de calendrier.
http://blog.pentalogic.net/2009/09/setting-default-duration-for-new-calender-events/
Il y a une astuce pur d'obtenir le script sur le nouveau formulaire – Ce n'est pas aussi intelligente comme spjqueryfield ou sppf mais son grand pour un hack rapide.
Christophe, Merci pour le lien!
Oskar, Je n'ai pas une approche encore parce que j'ai commencé tout juste l'utiliser pour jouer autour de. Comme je commence à l'utiliser dans un environnement de production, que je vais certainement écrire sur mon expérience.
Merci pour le lien vers spjqueryfield.
Paul, Quelle est votre approche pour injecter le code javascript dans la page modifier? Dans un déploiement, manière simple est le bit de tricky, comme je m'inquiète. Vous vraiment ne devraient pas avoir à créer un formulaire personnalisé chaque fois… Je pense que cette, http://spjqueryfield.codeplex.com/ , est un bon début. Déployer une fois, puis réutiliser au besoin…
Paul a un projet Codeplex sur la manipulation des champs de formulaire SharePoint:
http://spff.codeplex.com/