JavaScript, чтобы очистить поле формы при отправке перед подачей формы в сценарий Perl

StackOverflow https://stackoverflow.com/questions/2542510

Вопрос

У нас есть очень длинная форма, в которой есть несколько полей и 2 разных кнопок отправки. Когда пользователь нажимает кнопку 1 -й отправки («Поиск фото»), форма должна публиковать форму, и наш скрипт будет выполнять поиск сопоставления фотографий на основе того, что пользователь введен в текстовый ввод ("photo_search_text") рядом с кнопкой 1 -й отправки и и Перезагрузить всю форму с помощью соответствующих фотографий, добавленных в форму. Нажав кнопку 2 -й отправки («Сохранить изменения») в конце формы, она должна публиковать, и наш скрипт должен обновить базу данных с помощью информации, которую пользователь введен в форму.

К сожалению, макет формы делает невозможным разделить ее на 2 отдельные формы. Я проверил всю публикацию формы, и, к сожалению, отправленные поля идентичны обработке сценария Perl. Представление формы, независимо от того, какая кнопка «Отправить» нажимается, поэтому скрипт Perl не может дифференцировать, какое действие выполняет на основе того, какая кнопка отправки нажимается. Единственное, о чем я могу придумать, это обновить действие OnClick 2 -й кнопки отправки, чтобы он очистил поле «photo_search_text» до того, как форма будет отправлена, а затем выполните поиск фотографий, если у этого поля есть значение.

Основываясь на всем этом, мой вопрос заключается в том, что выглядит JavaScript, который может очистить поле «photo_search_text», когда кто -то нажимает на 2 -ю кнопку отправки? Вот то, что я пробовал до сих пор, никто из которых не работал успешно:

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

Мы также используем jQuery на сайте, поэтому, если есть способ сделать это с jQuery вместо простого JavaScript, не стесняйтесь предоставить для этого пример кода. Наконец, если есть еще один способ справиться с этим, что я не думаю ни о каких, и все предложения будут приветствовать.

Заранее спасибо за помощь!

Это было полезно?

Решение

Один из возможных причин заключается в том, что вам нужен объект CAMLQUERY в качестве параметра при вызове List.getItems () ( MSDN ).Если вы пропустите его, вы получите «неизвестную ошибку» из Args.get_message ().

Итак, чтобы сделать его работать, вы можете просто инициализировать новый объект CamlQuery и измените свой код на:

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(....)
.

Если вы хотите поддерживать фильтрацию или сортировку в запросе, вы можете позвонить:

query.set_viewXml("your caml");  
.

перед списком .getitems (запрос).Для получения дополнительной информации о том, как получить элементы списка, вы можете проверить Вот здесь .Надеюсь, это полезно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top