JavaScript在提交表单上提交给Perl脚本之前清除表单字段
-
23-09-2019 - |
题
我们的形式很长,有许多字段和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(查询)之前。有关如何检索列表项的详细信息,可以检查这里。希望它有用。