我们的形式很长,有许多字段和2个不同的提交按钮。当用户单击第1个提交按钮(“照片搜索”)时,表格应发布,我们的脚本将根据第1个提交按钮和第1个提交按钮旁边的文本输入(“ photo_search_text”)中输入的用户在文本输入中输入的内容进行搜索重新加载整个表格,并添加到表单中的匹配照片。单击表格末尾的第二个提交按钮(“保存更改”)后,它应该发布,我们的脚本应使用用户在表单中输入的信息更新数据库。

不幸的是,该表单的布局使其不可能将其分为2个单独的表单。我检查了整个表单帖子,不幸的是,提交的字段与Perl脚本相同,无论单击哪个提交按钮,都可以处理表单提交表单,因此Perl脚本无法根据按下哪个提交按钮来区分哪个操作。我唯一能想到的是更新第二个提交按钮的单击操作,以便在提交表单之前清除“ photo_search_text”字段,然后在该字段具有值时才执行照片搜索。

基于所有这些,我的问题是当有人单击第二个提交按钮时,可以清除“ photo_search_text”字段的JavaScript外观?这是我到目前为止尝试过的方法,但没有成功:

<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进行此操作,请随时为此提供示例代码。最后,如果有另一种方法可以处理我不考虑任何建议,所有建议将受到欢迎。

在此先感谢您的帮助!

有帮助吗?

解决方案

一个可能的原因是,当您调用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");  
.

在list.getItems(查询)之前。有关如何检索列表项的详细信息,可以检查这里。希望它有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top