65.9K
CodeProject 正在变化。 阅读更多。
Home

让 HTML 用户界面更友好。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.63/5 (22投票s)

2017 年 1 月 5 日

CPOL

3分钟阅读

viewsIcon

22373

downloadIcon

257

文章介绍了使 UI 用户友好的有用技巧。

让 HTML 用户界面更友好。

从客户端的角度来看,用户界面 (UI) 的重要性不亚于后端功能。它创造了产品的第一印象 – 客户可以看和感受到的东西。因此,保持表单和对话框清晰明了非常重要。

本文介绍了一些帮助使用户界面简单易用的技巧。

1. 使用占位符

即使字段没有标签,使用占位符也有助于理解字段的含义。

HTML

        <div class="form-group row">
			<label for="FirstName" class="col-sm-4 col-form-label">First Name</label>
			<div class="col-sm-6">
				<input name="FirstName" type="text" class="form-control" placeholder="Enter Your First Name" required>
			</div>
		</div>
		<div class="form-group row">
			<label for="LastName" class="col-xs-4 col-form-label">Last Name</label>
			<div class="col-xs-6">
				<input name="LastName" type="text" class="form-control" placeholder="Enter Your Last Name" required>
			</div>
		</div>
		<div class="form-group row">
			<label for="AddressLine1" class="col-xs-4 col-form-label">Address Line 1</label>
			<div class="col-xs-6">
				<input name="AddressLine1" type="text" class="form-control" placeholder="Enter Your Address Line 1" required>
			</div>
		</div>

此处和以下示例中的 HTML 均基于 Bootstrap 布局。 类 form-group 用于对字段进行分组,类 row 用于显示成行的字段。 列的大小由类 col-sm-4col-sm-6 调整。<label><input> 是使用类 col-form-labelform-control 设置样式的控件。placeholder 是控件 <input> 的特殊属性,它告诉浏览器在控件上显示特定的文本提示。

2. 使用 TAB 键切换输入字段。

当有多个字段时,使用 TAB 键在它们之间切换非常方便。大多数 UI 引擎都支持为自定义序列分配自定义顺序的 TAB 索引,这可能有助于使导航流畅清晰。

HTML

        <div class="form-group row">
			<label for="FirstName" class="col-sm-4 col-form-label">First Name</label>
			<div class="col-sm-6">
				<input name="FirstName" type="text" class="form-control" placeholder="Enter Your First Name" tabindex="1" required>
			</div>
		</div>
		<div class="form-group row">
			<label for="LastName" class="col-xs-4 col-form-label">Last Name</label>
			<div class="col-xs-6">
				<input name="LastName" type="text" class="form-control" placeholder="Enter Your Last Name" tabindex="2" required>
			</div>
		</div>
		<div class="form-group row">
			<label for="AddressLine1" class="col-xs-4 col-form-label">Address Line 1</label>
			<div class="col-xs-6">
				<input name="AddressLine1" type="text" class="form-control" placeholder="Enter Your Address Line 1" tabindex="3" required>
			</div>
		</div>

<input> 控件具有属性 tabindex,该属性定义元素的 Tab 顺序。

3. 使用“Enter”键作为默认行为

通常,当用户按下“Enter”键时,他或她期望默认行为。例如,如果用户输入了所有必要的字段并按下“Enter”键,通常期望将数据提交到服务器。

HTML

	   <form class="center-panel" id="centerform">

		 .....

		 <div class="form-group row">
			<div class="offset-xs-4 col-xs-10">
				<button type="submit" class="btn btn-primary">Submit</button>
			</div>
		 </div>
		
	   </form>
	   
       <script type="text/javascript">
		   $(document).keypress(function (e) {
			   if (e.which == 13) {
				   $("#centerform").submit();
			   }
		   });
        </script>

<form> 使用类 center-panel 集中,并包含用于提交它的 <button> 控件。 Javascript 代码使用 jQuery 事件 keypress 在按下“Enter”键时提交表单。参数 which 定义按下了哪个键,值 13 对应于“Enter”。

4. 为日期/时间/货币/颜色等使用特定的控件和掩码。

使用专用控件/掩码来填写输入字段非常方便。

从 jQuery UI 使用日期选择器的 HTML (https://jqueryui.jqueryjs.cn/datepicker/)

        <div class="form-group row">
			<label for="Date" class="col-xs-4 col-form-label">Date</label>
			<div class="col-xs-6">
				<input name="Date" type="text" id="datepicker" class="form-control" placeholder="Enter Date" tabindex="4" required>
			</div>
		</div>
		
		<script type="text/javascript">
		   $("#datepicker").datepicker();
        </script>

通过在 Javascript 中通过 jQuery 插件 datepicker 初始化,在带有 id datepicker<input> 上定义控件 datepicker,该插件由 jQuery UI 提供。

5. 使用容错用户输入验证

输入验证器应该足够灵活,可以处理任何用户输入,包括过多的空格、中断、破折号等。

使用 jQuery Validate 进行验证的 HTML (https://jqueryvalidation.org/)

		<form class="center-panel" id="centerform">
			<div class="form-group row">
				<label for="PhoneNumber" class="col-xs-4 col-form-label">Phone Number</label>
				<div class="col-xs-6">
					<input name="PhoneNumber" type="text" class="form-control" placeholder="Enter Your Phone Number" tabindex="3" required>
				</div>
			</div>
		</form>
		
		<script type="text/javascript">
			$.validator.addMethod("phoneNumberFormat", function(value, element) {
				return value && value.replace(/\D+/g, "").length == 10;
			}, "Phone number should be a number with 10 digits");
			
			$("#centerform").validate({
		       rules: {
				     	PhoneNumber: {
						    phoneNumberFormat: true,
					    }
				      }
			});
		</script>

jQuery Validate 函数 addMethod 添加一个新的验证方法,并接受验证名称、验证函数和验证消息作为参数。验证函数接受两个参数:目标元素及其值。在代码片段中,验证函数检查电话号码值是否为 10 位数字。使用正则表达式替换所有不必要的符号(空格、破折号等)。最后一个块执行 $("#centerform").validate() 只是在 id 为 centerform 的表单和名称为 PhoneNumber 的元素上注册规则。

6. 使用错误消息而不是禁用按钮。

禁用按钮会使用户感到困惑,因为无法清楚地知道功能不可用的原因。最好使用错误消息或提示。

对于 jQuery Validate,无需更改任何代码,它会在提交时自动验证页面上的所有表单。

7. 一次显示所有控件,而不是在输入时弹出。

弹出窗口上的布局转换可能会分散用户的注意力。

最好一次显示所有控件,并在必要时提供有用的提示。

HTML

		<div class="form-group row">
			<label for="Country" class="col-xs-4 col-form-label">Country</label>
			<div class="col-xs-6">
				<select class="form-control" name="Country" id="countrySelection">
					<option value="" disabled selected>Enter Your Country</option>
					<option value="USA">USA</option>
				</select>
			</div>
		</div>
		<div class="form-group row">
			<label for="State" class="col-xs-4 col-form-label">State</label>
			<div class="col-xs-6">
				<select class="form-control" name="State" id="stateSelection">
					<option value="">-- Select Country --</option>
				</select>
			</div>
		</div>
		
		<script type="text/javascript">
		   $("#countrySelection").change(function () {
			   var stateSelection = $("#stateSelection");

			   var selected = this.value;
			   if (selected) {
				   stateSelection.empty();
				   stateSelection.append($("<option></option>")
								 .attr("value", "")
								 .attr("disabled", "")
								 .attr("selected", "")
								 .text("Enter Your State"));

				   stateSelection.append($("<option></option>")
								 .attr("value", "CA")
								 .text("CA"));
			   }
		   })
		</script>

此示例包含两个字段:国家/地区和州/省,其行为在 Javascript 块中定义。 jQuery 事件 change 用于订阅国家/地区 <select> 组合框的更改。 当事件触发时,状态组合框将填充表示 <select> 项的 <option> 元素。 为第一个元素设置属性 disabledselected,使其成为选择提示。

兴趣点

还有很多其他的技巧可以让用户界面简单易用。

在 HTML 中创建用户友好的 UI - CodeProject - 代码之家
© . All rights reserved.