Vinnige en maklike: Gebruik jQuery 'n teks veld se waarde in te stel op 'n SharePoint vorm

Ek het begin rondspeel met jQuery yesterday. I’ve been wanting to do this for a long time, sedert Paul Grenier begin skryf sy reeks oor jQuery vir gebruikers by die agbare www.endusersharepoint.com web site. As I use it, I hope to add a series of “Quick and Easy” posts like this one. This post describes how to set a known text field’s value to anything you want.

In hierdie scenario, Ek het 'n persoonlike lys wie se "nuwe" vorm lyk soos:

image

Dit is die nuwe vorm vir 'n persoonlike lys met die standaard titel kolom en twee kolomme lys (nie werf kolomme; Ek dink nie dit moet 'n verskil maak).

Die doel is om 'n arbitrêre waarde vir die veld te wys, "DefaultMeFieldNoSpaces" (jy kan sê ek is 'n bietjie van 'n lafaard met die "geen spasies" ding aan die gang, maar ek doen spesery dit aan die einde van hierdie artikel).

Hierdie stukkie van jQuery vir my gewerk:

<script type ="Teks / javascript">

  $(funksie() {

    $(Se insette[title = DefaultMeFieldNoSpaces]").attr(
        {waarde: "Jy is in 'n kronkelende doolhof van gange, almal gelyk. "});

  });

</script>

Soos ek dit verstaan ​​hierdie stukkie van jQuery sê, “find me any input tag whose title = DefaultMeFieldNoSpaces. Toe, stel om al hul waardes aan 'n bekende aanhaling uit 'n ou rekenaar spel. "

Aangesien daar slegs een veld op die vorm met 'n titel gelyk aan "DefaultMeFieldNoSpaces" Ons is verseker van die toeken van 'n waarde vir die veld en geen ander.

Wat van 'n veld wie se naam ruimtes in dit? It’s nearly the same:

<script type ="Teks / javascript">

  $(funksie() {
     $(Se insette[title = Ken veld Space]").attr(
        {waarde: "Jy is in 'n kronkelende doolhof van gange, almal gelyk. "});

  });

</script>

Ek dink dit is 'n redelik veilige benadering, meaning that we should be able to find the field that we want and only the field we want. If you look at the HTML SharePoint is giving us, dit is soort van morsig:

<insette
naam="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
tipe="text"
MaxLengte="255"
ID="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
titel="DefaultMeFieldNoSpaces"
klas="ms-long"
/>

"Title" staan ​​uit as 'n herkenbare en hopelik unieke eienskap om ons te help om die spesifieke kolom wat ons wil ons arbitrêre waarde toe te ken identifiseer.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Egter, As ons wil meer interessante vorm vlak om dinge te doen (wat ons almal altyd wil doen, natuurlik, reg nadat ons klaar die skottelgoed), wil verander die waarde van "veld b" outomaties op grond van die waarde van die "veld om 'n", ons (Ek) nodig het om hierdie dinge te leer.

Ek dink ons ​​die beste kans om 'n werklike nuttige waarde om hier te kry, is deur middel van die titel, at least for text fields. There may be a better, more reliable approach. If I find it, Ek sal hierdie pos werk. If you know a better way, los 'n kommentaar.</einde>

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

5 gedagtes oor "Vinnige en maklike: Gebruik jQuery 'n teks veld se waarde in te stel op 'n SharePoint vorm

  1. Paul Galvin

    Oskar, I don’t have an approach as yet because I have only just started using it to play around. As I begin to use it in a production environment I will definitely write about my experience.

    Thanks for the link to spjqueryfield.

    Antwoord
  2. Oskar Austegard

    Paul, what’s your approach for injecting the javascript into the edit page? Doing so in a deployable, simple manner is the tricky bit, as far as I’m concerned. You really shouldn’t have to create a custom form each time… I think this, http://spjqueryfield.codeplex.com/ , is a good start. Deploy it once, then reuse as needed…

    Antwoord

Laat 'n antwoord te Paul Galvin Kanseleer antwoord

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk *