本文将描述如何通过简单的CSS和jQuery插件提升SharePoint默认的列表表单体验。这些小技巧并不仅仅改善了外观,还提升了可用性。

剩余字数

我们以通知列表为例。通知正文字段假设要求不应该超过200个字符。为了让用户方便的知道什么时候接近字数限制了,我们将在正文字段上设置一个统计剩余字数的脚本。(注意:由于插件针对的对象是textarea标记,所以需要保证正文字段是纯文本格式的。富文本格式在页面中不是使用的 textarea标记。)

除了jQuery外,我们的解决方案还会用到char counter插件。

CHAR COUNTER插件介绍

下载jquery.charcounter.js:http://www.tomdeater.com/jquery/character_counter/jquery.charcounter.js

首先,我们需要添加jQuery和插件的脚本引用。你可以通过插入WebPart的方式去做,但是我发现有时这种方式会出现问题。最简单以及最保险的方式是将脚本直接添加到页面的PlaceHolderAdditionalPageHead里。

为此,我们打开SharePoint Designer 2010,点击“所有文件”下的Lists,找到通知列表。这里要右击NewForm.aspx,选择“在高级模式下编辑文件”。

查看原图(大图)

注意:“在高级模式下编辑文件”是在SharePoint Designer 2010中新增页面编辑功能。通常编辑 Web 部件页时,我们使用默认模式更简单更直观。事实上,默认模式与向 wiki 页中添加内容的操作非常相似。人们可以插入数据视图和表单,键入文本,以及在主内容占位符 (PlaceHolderMain) 中添加其他内容,但页面的其余部分是锁定的,不得编辑。在此模式下,所有自定义内容都只能放在隐藏的 Web 部件里了。因此在默认模式下,无法对页面进行自定义(“unghost”)。

查看原图(大图)

相比之下,在高级模式下,您可以完全自定义页面,也就是说,可以编辑页面上的任何内容。默认情况下,只有网站集管理员能够在高级模式下编辑页面。

继续我们的添加引用操作,在打开的NewForm.aspx里找到PlaceHolderAdditionalPageHead占位符,如下图所示:

查看原图(大图)

在其中添加如下的代码:

1 <asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
2 <!-把脚本和css样式表都放在这里-->
3 <script type="text/javascript" src="/_layouts/scripts/jquery/jquery-1.4.1.js"></script>
4 <script type="text/javascript" src="/_layouts/scripts/plugins/jquery.charcounter.js"></script>

引用完所有需要的脚本文件后,我们需要回到SharePoint,在新建页面上为正文字段挂接相应的行为。这里我们可以采用HTML表单WebPart的方式添加所需的JavaScript。

如果默认的列表表单是以对话框的方式打开的,那么就不方便直接进入页面编辑状态了。我们可以通过修改列表设置->高级设置->对话框,关闭对话框方式。

也可以直接输入新建窗体的URL。这里为http://sp2010u/it/Lists/Announcements/NewForm.aspx。

选择网站操作->编辑页面,进入编辑模式。插入一个HTML表单WebPart。打开WebPart属性->“源编辑器”。删除默认的HTML内容。编写如下的JavaScript代码:

01 <script type="text/javascript">
02 $(document).ready(function(){
03 $("textarea[title='正文']").charCounter(200, {
04 classname: "counter",
05 format: "剩余 %1 字",
06 pulse: false,
07 delay: 100
08 });
09 });
10 </script>

通过textaarea标记和title属性,我们选中了正文字段。挂接charCounter的语法也很简单。如需了解更多设置,可以参考上面的插件介绍。

另外,我还在其中为字数文本添加了显示样式的css:

01 <style>
02 .counter{
03 position:relative;
04 right:14px;
05 top:0;
06 color:#555;
07 float:right;
08 clear:both;
09 display:block;
10 text-align:right;
11 background:#fff;
12 width:90px;
13 padding:3px;
14 border:1px solid #888;
15 border-top:0px;
16 margin-top:-1px;
17 }
18 </style>

完成后可以把列表表单改回成对话框方式打开。

看一下运行效果:

查看原图(大图)

输入框提示信息

当要求用户在列表表单中输入信息时,最好能够提示用户要输入什么类型的信息。SharePoint自带的功能里,可以为每个字段输入一个描述信息,将显示在输入框下方。如果你需要更加动态的显示一些提示信息,可以用我的这个办法。

首先也是在PlaceHolderAdditionalPageHead占位符里添加jQuery和插件的引用。方法同上。

1 <script type="text/javascript" src="/_layouts/scripts/plugins/jquery.inputHintBox.js">
2 </script>

这里我们用的插件是Input floating hint box

在HTML表单WebPart里添加的JavaScript调用如下,主要是设置位置项和提示的html内容:

01 $(document).ready(function(){
02
03 $("input[title='标题']").inputHintBox({
04 className:'simple_box',
05 html:'这条通知的标题是什么?',
06 incrementLeft:-160,
07 incrementTop:140
08 });
09
10 });

同样是使用input标记和title属性进行选择。

其中,把提示文字的类设为simple_box,所以在css样式里添加一个简单的样式定义代码:

1 .simple_box{
2 border:1px solid gray; background:url('/_layouts/images/toolgrad.gif');
3 color:#444;padding:7px;
4 }

看一下运行效果:

查看原图(大图)

水印提示

这里我们用到的插件是TinyWatermark。它可以为我们的列表表单中的输入控件添加水印提示。水印是增加SharePoint窗体易用性的很好的方法。

我们继续在前面的窗体上做测试。首先也是在PlaceHolderAdditionalPageHead占位符里添加jQuery和插件的引用。方法同上。

1 <script type="text/javascript" src="/_layouts/scripts/plugins/jquery.tinywatermark-2.0.0.js">
2 </script>

在HTML表单WebPart里添加的JavaScript调用如下,主要是选择字段和添加水印提示的内容。内容可以直接传一个字符串,或者通过jQuery获取某个属性值(如title):

1 $(document).ready(function(){
2 var t=$("input[title='标题']");
3 t.watermark('watermark',t.attr('title'));
4 $("textarea[title='正文']").watermark('watermark','请输入正文内容');
5 });

其中,把提示文字的类设为watermark,所以在css样式里添加一个简单的样式定义代码:

1 .watermark {color:#999;}

看一下运行效果:

查看原图(大图)

用jQuery插件来提升SharePoint列表表单用户体验的更多相关文章

  1. [using_microsoft_infopath_2010]Chapter4 使用SharePoint列表表单

    本章概要: 1.把SharePoint列表表单转换成InfoPath可用形式 2.使用字段和控件 3.规划表单布局 4.理解列表表单的局限性

  2. jQuery 浮动标签插件,帮助你提升表单用户体验

    浮动标签模式(Float Label Pattern)是最新流行的一种表单输入域的内容提示方式,当用户在输入框输入内容的时候,原先占位符的内容向上移动,显示在输入的内容的上面.这里推荐的这款 jQue ...

  3. SharePoint 2013 关于自定义显示列表表单的bug

    1.在SharePoint 2013中,我们隐藏列表Dispform页面的ListFormWebPart部件,转而使用自定义显示列表表单进行展示,因为这样更容易定制我们需要的显示: 2.之后发现文件夹 ...

  4. SharePoint 2013 配置InfoPath 列表表单

    转载来源:http://www.cnblogs.com/jianyus/p/3470113.html SharePoint列表,都是通过表单展示,有时候不太符合要求,这时候,我们可以通过定制表单,来是 ...

  5. 利用简洁的图片预加载组件提升h5移动页面的用户体验

    在做h5移动页面,相信大家一定碰到过页面已经打开,但是里面的图片还未加载出来的情况,这种问题虽然不影响页面的功能,但是不利于用户体验.抛开网速的原因,解决这个问题有多方面的思路:最基本的,要从http ...

  6. 运用预加载提升H5移动页面的用户体验

    原文地址:http://www.grycheng.com/?p=2188 在做h5移动页面,相信大家一定碰到过页面已经打开,但是里面的图片还未加载出来的情况,这种问题虽然不影响页面的功能,但是不利于用 ...

  7. SharePoint 2013 Designer系列之自定义列表表单

    在SharePoint的使用中,默认的样式过于单调经常困扰着我们,其实,SharePoint使用Designer工具,可以很轻松解决这一问题,制作出各式各样漂亮的页面.下面,让我们简单介绍下这一过程. ...

  8. jquery插件dataTables添加序号列

    官网方法实例: $(document).ready(function() {     var t = $('#example').DataTable({         "columnDef ...

  9. 用jquery实现隐藏列表表单的显示关闭切换以及Ajax方式改动提交相应的那一行的改动内容。

    请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 先给大家看看图片效果,大 ...

随机推荐

  1. 洛谷P2414 - [NOI2011]阿狸的打字机

    Portal Description 首先给出一个只包含小写字母和'B'.'P'的操作序列\(s_0(|s_0|\leq10^5)\).初始时我们有一个空串\(t\),依次按\(s_0\)的每一位进行 ...

  2. hdu 2579

    #include<stdio.h> #include<queue> #include<iostream> #include<string.h> #inc ...

  3. hibernate保存oracle日期时间

    用java生成一个带年月日时分秒的时间,通过hibernate对象保存到oracle中的Date字段中, 第一种方法: java实体类的createDate属性,类型为java.util.Date h ...

  4. Android Application基本组成部分

    Android Application基本组成部分 四个核心的组件 Activity活动,主要用于前台和用户交互,即UI,Activity只是加载一个View而并非一个UI对象 Service服务,主 ...

  5. mysql查所有列名

    查询该视图  information_schema.columns  该有的都有 desc information_schema.columns; select * from information_ ...

  6. 寒武纪camp Day2

    补题进度:8/10 A(计数+BIT) 题意: 给一个长度为n的数组a[],任意选0<=i<=j<n,将a[i]~a[j]从小到大排序,形成新的数组.问有多少个不同的新数组. N,a ...

  7. 操作redis有关的命令

    )连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit )持久化 save:将数据同步保存到磁盘 bgsave ...

  8. 佳能 imageclass mf40120

    加粉2612A 加粉方式: 完全拆解安装:在技术部 自已研究 简单拆开,一分为二,倒粉,然后,加分:一些其他单位 外部加粉,拆粉口外盖:一些其他单位

  9. 基于51单片机的CAN通讯协议C语言程序

      //-----------------------函数声明,变量定义-------------------------------------------------------- #includ ...

  10. C/C++实现bmp文件读写

    之前知道点bmp图的格式,然后对8位操作过,然后今天弄了一下24位真彩色的. C++读取.旋转和保存bmp图像文件编程实现 主要是理解bmp文件的格式8/24位的区别 8位图有调色板,24位在文件头和 ...