Pregunta

Tenemos una forma muy larga que tiene varios campos y 2 botones de envío diferentes. Cuando un usuario hace clic en el primer botón Enviar ("Búsqueda de fotos"), el formulario debe publicar y nuestro script hará una búsqueda de fotos coincidentes basadas en lo que el usuario ingresó en la entrada de texto ("Photo_Search_Text") junto al botón de envío del primer Recargar todo el formulario con fotos coincidentes agregadas al formulario. Al hacer clic en el botón Envío 2º ("Guardar cambios") al final del formulario, debe publicar y nuestro script debe actualizar la base de datos con la información que el usuario ingresó en el formulario.

Desafortunadamente, el diseño de la forma hace que sea imposible separarlo en 2 formas separadas. Verifiqué toda la publicación del formulario y desafortunadamente los campos enviados son idénticos al script PERL que procesa el envío del formulario, sin importar en qué se haga clic en el botón de envío para que el script Perl no pueda diferenciar qué acción realizar en función de qué botón de envío se presiona. Lo único que se me ocurre es actualizar la acción OnClick del botón de envío segundo para que borre el campo "Photo_Search_Text" antes de que se envíe el formulario y luego solo realice una búsqueda de fotos si esos campos tienen un valor.

Según todo esto, mi pregunta es ¿qué busca el JavaScript que podría borrar el campo "Photo_Search_Text" cuando alguien hace clic en el segundo botón Enviar? Esto es lo que he probado hasta ahora, ninguno de los cuales ha funcionado con éxito:

<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"
>

También usamos jQuery en el sitio, por lo que si hay una manera de hacerlo con jQuery en lugar de JavaScript simple, siéntase libre de proporcionar un código de ejemplo para eso. Por último, si hay otra forma de manejar esto, no estoy pensando en todas y cada una de las sugerencias sería bienvenida.

¡Gracias de antemano por tu ayuda!

¿Fue útil?

Solución

Una de las razones posibles es que necesita un objeto Camlquery como un parámetro cuando llame a List.GetItems () ( msdn ).Si lo extrañas, obtendrás un "error desconocido" de args.get_message ().
Entonces, para que funcione, simplemente puede inicializar un nuevo objeto CamlQuery, y cambiar su código a:

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 desea respaldar el filtrado o la clasificación en la consulta, puede llamar:

query.set_viewXml("your caml");  

antes de list.getitems (consulta).Para obtener más información sobre cómo recuperar los elementos de la lista, puede verificar Aquí .Espero que sea útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top