Comenzó a jugar con jQuery ayer. He estado queriendo hacer esto por mucho tiempo, desde Paul Grenier comenzó a escribir su serie acerca de jQuery para los usuarios finales en el venerable www.endusersharepoint.com sitio web. Como lo uso, Espero poder añadir que una serie de "Rápido y fácil" posts como este. Este post describe cómo establecer el valor de un campo de texto conocido en todo lo que quieras.
En este escenario, He creado una lista personalizada cuya forma "nueva" mira como se muestra:
Esta es la nueva forma de una lista personalizada con la columna de título predeterminado y dos columnas de la lista (no columnas de sitio; No creo que debe hacer alguna diferencia).
El objetivo es asignar un valor arbitrario al campo, "DefaultMeFieldNoSpaces" (puede decir que soy un poco cobarde con lo de "no hay espacios" va, pero especias lo el final de este artículo).
Este bit de jQuery trabajó para mí:
<tipo de script ="text/javascript"> $(función() { $(' entrada[Título = DefaultMeFieldNoSpaces]').attr( {valor: "Estás en un laberinto de pasadizos revirado, todos iguales. "}); }); </secuencia de comandos>
Es decir tengo entendido que este bit de jQuery, "encontrarme alguna entrada etiqueta cuyo título = DefaultMeFieldNoSpaces. A continuación, establecer todos sus valores en una famosa frase de un viejo juego de equipo."
Ya que sólo habrá un campo de formulario con un título igual a "DefaultMeFieldNoSpaces" somos asegurada de asignar un valor a ese campo y ningún otro.
¿Qué pasa con un campo cuyo nombre posee espacios? Es casi lo mismo:
<tipo de script ="text/javascript"> $(función() { $(' entrada[Título = campo asignar con espacio]').attr( {valor: "Estás en un laberinto de pasadizos revirado, todos iguales. "}); }); </secuencia de comandos>
Creo que este es un enfoque bastante seguro, lo que significa que debemos ser capaces de encontrar el campo que queremos y sólo en el campo que queremos. Si nos fijamos en el HTML de SharePoint nos da, es un tipo de desorden:
<entrada nombre= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField" tipo= "text" MaxLength= "255" ID.= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" Título= "DefaultMeFieldNoSpaces" clase= "ms largo" />
"título" se destaca como un atributo reconocible y esperemos único para ayudarnos a identificar la columna específica a la que queremos asignar nuestro valor arbitrario.
Este es un concepto fundacional. Configuración de un campo de manera arbitraria como ésta no va a ganar cualquier premio. Sin embargo, Si queremos hacer cosas más interesantes de nivel de formulario (que todos nosotros siempre queremos hacer, Claro, justo después de terminar de lavar los platos), como cambiar el valor de "campo b" automáticamente basándose en el valor de "campo un", nos (ME) es necesario aprender estas cosas.
Creo que es nuestra mejor oportunidad de obtener un valor real útil aquí por el título, por lo menos para campos de texto. Puede ser un mejor, enfoque más confiable. Si lo encuentro, Podrá actualizar este post. Si conoces una manera mejor, por favor, deje un comentario.</final>
</final>
Sígueme en Twitter en http://www.twitter.com/pagalvin
Hola Pablo – Me encontré con tu post mientras investigando para un problema similar :-
Establecer una duración predeterminada para los nuevos eventos de calendario.
http://blog.pentalogic.net/2009/09/setting-default-duration-for-new-calender-events/
Hay un buen truco acerca de cómo obtener la secuencia de comandos en el formulario nuevo – no es tan inteligente como spjqueryfield o spff pero su excelente para un hack rápido.
Christophe, Gracias por el enlace!
Oskar, No tengo un enfoque todavía porque apenas he empezado utilizando para jugar. Como empezar a utilizar en un entorno de producción definitivamente voy a escribir sobre mi experiencia.
Gracias por el enlace spjqueryfield.
Paul, ¿Cuál es su enfoque para inyectar el código javascript en la página Editar? Hacerlo en un despliegue, manera simple es el poco complicado, como me preocupa. Realmente no tiene que crear un formulario personalizado cada vez… Creo que esta, http://spjqueryfield.codeplex.com/ , es un buen comienzo. Implementar una vez, luego reutilizar según sea necesario…
Paul tiene un proyecto de Codeplex acerca de la manipulación de campos de formulario de SharePoint:
http://spff.codeplex.com/