Jeg begynte å spille jQuery i går. Jeg har lyst til å gjøre dette for lenge, helt siden Paul Grenier begynte å skrive hans serie med jQuery for sluttbrukere på den ærverdige www.endusersharepoint.com webområde. Som jeg bruker den, Jeg håper å legge en rekke "Rask og lett" innlegg som dette. Dette innlegget beskriver hvordan sette en kjent tekst feltverdi til alt du vil..
I dette scenariet, Jeg har opprettet en egendefinert liste som "nye" skjemaet ser ut som vist:
Dette er den nye formen for en egendefinert liste med standard Tittel-kolonnen og to listekolonner (ikke områdekolonner; Jeg tror ikke det bør gjøre noen forskjell).
Målet er å tilordne en tilfeldig verdi i feltet, "DefaultMeFieldNoSpaces" (Du kan si jeg er litt av en feiging med "ingen mellomrom" ting skjer, men jeg krydre det opp på slutten av denne artikkelen).
Denne litt jQuery arbeidet for meg:
<script type ="text/javascript"> $(funksjonen() { $(' input[tittel = DefaultMeFieldNoSpaces]').attr( {verdi: "Du er i en svingete labyrinten av passasjer, alle like. "}); }); </skriptet>
Som jeg forstår det denne bit av jQuery sier, «finne meg noen innspill merke hvis tittel = DefaultMeFieldNoSpaces. Deretter, sett alle sine verdier til en berømte setning fra en gammel dataspill."
Fordi det bare finnes ett felt i skjemaet med en tittel lik "DefaultMeFieldNoSpaces" er vi sikret av tilordne en verdi til feltet og ingen andre.
Hva med et felt som inneholder mellomrom? Det er nesten det samme:
<script type ="text/javascript"> $(funksjonen() { $(' input[tittel = Tilordne felt med plass]').attr( {verdi: "Du er i en svingete labyrinten av passasjer, alle like. "}); }); </skriptet>
Jeg tror dette er en ganske trygg tilnærming, betyr at vi skal kunne finne det vi vil og bare feltet ønsker vi. Hvis du ser på gir HTML SharePoint oss, Det er slags rotete:
<inngang navn= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField" type= "tekst" MaxLength= "255" ID= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" tittel= "DefaultMeFieldNoSpaces" klassen= "ms lang" />
"tittel" skiller seg ut som et gjenkjennelig og forhåpentligvis unike å hjelpe oss med å identifisere bestemte kolonnen som vi vil tildele våre vilkårlig verdi.
Dette er et grunnleggende begrep. Sette et felt på en vilkårlig måte som dette kommer ikke til å vinne noen priser. Men, Hvis vi ønsker å gjøre mer interessant form nivå ting (som alle oss alltid ønsker å gjøre, selvfølgelig, rett etter at vi vaske oppvasken), som endre verdien til "feltet b" automatisk basert på verdien av "feltet en", Vi (JEG) trenger å lære disse tingene.
Jeg tror vår beste sjanse til å få en virkelig nyttig verdi her er via tittelen, minst for tekstfelt. Det kan være en bedre, sikrere tilnærming. Hvis jeg finner det, Jeg vil oppdatere dette innlegget. Hvis du kjenner en bedre måte, Legg igjen en kommentar.</slutten>
</slutten>
Følg meg på Twitter på http://www.twitter.com/pagalvin
Hei Paul – Jeg kom over innlegget ditt mens forsker for et lignende problem :-
Angi en standardvarighet for nye kalenderhendelser.
http://blog.pentalogic.net/2009/09/setting-default-duration-for-new-calender-events/
Det er en pen knep få skriptet til det nye skjemaet – Det er ikke så flink som spjqueryfield eller spff men flott for en rask hack.
Christophe, Takk for linken!
Oskar, Jeg har ikke en tilnærming som ennå fordi jeg har bare nettopp begynt å bruke den til å spille rundt. Som jeg begynner å bruke det i et produksjonsmiljø vil jeg definitivt skrive om min erfaring.
Takk for linken til spjqueryfield.
Paul, Hva er din holdning sprøytebrukere javascript i redigeringssiden? Dermed i en deployerbar, enkel måte er litt kinkig, så vidt jeg er bekymret. Du virkelig trenger ikke å opprette et egendefinert skjema hver gang… Jeg tror dette, http://spjqueryfield.codeplex.com/ , er en god start. Distribuere den gang, deretter bruke på nytt etter behov…
Paul har en Codeplex prosjekt om manipulere SharePoint skjemafelt:
http://spff.codeplex.com/