建材秒知道
登录
建材号 > 设计 > 正文

改善Form提交数据的UI 交互设计

自觉的薯片
羞涩的冥王星
2023-01-26 12:02:25

改善Form提交数据的UI 交互设计

最佳答案
愉快的母鸡
感动的酒窝
2025-12-04 20:32:57

数据一次校验    完整的数据校验需要前台页面(JS)和后台程序分别做校验 虽然有Commons validate 框架可以使用 但本质上还是分为这么 次校验 如果校验出错或者程序出错 都是后台采用redirect的方式返回到前台 虽然采用了struts之类框架的都是forward到前台 如果要是做复杂和耗时的校验(比如要进行数据库校验) 页面会长时间停留在后台页面 不是很友好和方便

验证信息友好化 让验证码 躲 起来    为了防止机器提交 都会采用验证码机制 对于正常操作的用户 每次都要输入验证码 显然不够不友好的 如果提交的时候能够做判断 如果是正常提交就不需要验证码 如果是被认定为机器提交 诸如连续提交等行为 则提示需要输入验证码才能提交数据 这样显然就进了一步

提交过程友好显示 拒绝滥用alert界面    通过为了简单 在返回任何数据的时候 都用alert提示给用户 alert最大的问题在于需要点击一下才能关闭 如果提交成功能自动关闭是不是比这种alert要好很多?

采用AJAX +JSON 方式提交数据 与传统提交数据 的比较

var ajaxSubmitFormData = {

form:false   //用来保存正在提交的表单

debug:false

callback:false

dataType: json

onSubmit:function(data){

//正在提交数据提示

}

onResponse:function(response){

//当数据返回时触

}

onResponse :function(data){

alert( 恭喜你 数据提交成功 )

window location reload(false)

}

onResponse :function(data){

//输入验证码界面

var formId=ajaxSubmitFormData form

if (!$(formId) find( :input[name= verfiyCode ] ) length){

$(formId) append( <input type= text name= verfiyCode size= /><img src= verifyCode jsp >)

}

}

onResponse :function(data){

var s= 提交错误:\n

//alert(data length)

for(var i= i<data lengthi++){

s=s+data[i] id+ | +data[ssage+ \n

}

alert(s)

}

onResponse :function(data){

if (data length>){

window location=data[ssage

}else{

alert( 未定义跳转地址 )

}

}

}

$(document) ready(function(){

$( form ajaxForm ) submit(function() {

//alert($(this) attr( id ))

var formId=$(this) attr( id )

submitAjaxFormNow( # +formId)

return false// <important!

})

$( ajaxSubmitButton ) click(function(){

var formId=$(this) attr( formId )

//alert($(this) attr( formId ))

submitAjaxFormNow( # +formId)

})

})

function initSubmitAjax(formId returnFunc){

var options= {

beforeSubmit:  function(formData jqForm options) {

if (ajaxSubmitFormData debug){

var queryString = $ param(formData)

alert( 正在提交的数据:\n + queryString)

}

if ($ isFunction(ajaxSubmitFormData onSubmit)) {

ajaxSubmitFormData onSubmit(formData)

}

return true

}

success:function (responseText statusText)  {

try{

if (ajaxSubmitFormData debug){

alert( status: + statusText + \nresponseText:\n + responseText)

}

if ($ isFunction(ajaxSubmitFormData onResponse)) {

ajaxSubmitFormData onResponse(responseText)

}

ajaxSubmitFormData form     =false

ajaxSubmitFormData callback =false

// TODO 改成触发事件方式

responseText=responseText replace(/\r\n/g )

//trim space

responseText=responseText replace(/^\s*|\s*$/g )

var response = eval(responseText)[ ]//转换成json格式

if (de == ){

if ($ isFunction(returnFunc)) {

ajaxSubmitFormData callback=returnFunc

returnFunc(ssages)

}else{

if ($ isFunction(ajaxSubmitFormData onResponse )) {

ajaxSubmitFormData onResponse (ssages)

}

}

//$(formId) triggerHandler( ajax_response_ ssages)

}

if (de == ){

//保存当前

ajaxSubmitFormData form       = formId

ajaxSubmitFormData callback   = returnFunc

if ($ isFunction(ajaxSubmitFormData onResponse )) {

ajaxSubmitFormData onResponse (ssages)

}

//$(formId) triggerHandler( ajax_response_ ssages)

}

if (de == ){

if ($ isFunction(ajaxSubmitFormData onResponse )) {

ajaxSubmitFormData onResponse (ssages)

}

//$(formId) triggerHandler( ajax_response_ ssages)

}

if (de == ){

if ($ isFunction(ajaxSubmitFormData onResponse )) {

ajaxSubmitFormData onResponse (ssages)

}

//$(formId) triggerHandler( ajax_response_ ssages)

}

}catch(e){

alert( 服务器返回的数据格式无效:\n +responseText+ \nError: +ssage)

}

}

clearForm:true

resetForm:true

timeout:

type: POST

}

$(formId) ajaxError(function(event request settings){

alert( 处理请求发生错误:\n +settings url+ \n请重新刷新页面或稍后再试 )

$ unblockUI()

})

return options

}

function submitAjaxFormNow(formId returnFunc){

if ($(formId))

$(formId) ajaxSubmit(initSubmitAjax(formId returnFunc))

}

function submitAjaxForm(formId returnFunc){

if ($(formId))

$(formId) ajaxSubmit(initSubmitAjax(formId returnFunc))

}

预览

lishixinzhi/Article/program/Java/hx/201311/27021

最新回答
无限的乌龟
深情的灰狼
2025-12-04 20:32:57

Command1.Action:=true-----(这个是“计算”的)双击“计算”按钮就可以写代码了

Command1.Action:=false-----(这个是“关闭”的)

无聊的八宝粥
丰富的狗
2025-12-04 20:32:57
一、表单概述

表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和e-mail地址、调查表、留言簿等等。

1、表单的组成

一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。 为了顾及不同的网页设计工具,本文只讲述代码的设计,不具体讲述操作方法,下面就是表单的HTML代码设计要点:

1.1 表单标签<form></form>

苹果战斗机
文艺的白云
2025-12-04 20:32:57
这是一个简单的添加消息的表单 你参考下

<form action="add.php" method="post" name="myform">

标题:<br>

<input type="text" name="title"/><br><br>

内容:<textarea name="content" rows="10" cols="50" wrap="on"></textarea><br>

<input type="submit" name="tianjia" value="发布留言">

<input type="reset" value="重置">

</form>

优美的水池
酷酷的金针菇
2025-12-04 20:32:57
Private Sub Command1_Click()

For i = 1920 To 2220

List1.AddItem CStr(i) &"-6-1"

Next

For i = 0 To List1.ListCount - 1

If Weekday(CDate(List1.List(i))) = 6 Then

n = n + 1

End If

Next

Label1.Caption = n

End Sub

超级的手套
开朗的花瓣
2025-12-04 20:32:57
<form name="form1">

<input type="text" name="label1" value="信息工程学院">

<input onclick="document.form1.label1.value='汉语090301李玉'" type="button" value="command1">

<input onclick="document.form1.label1.value='信息工程学院'" type="button" value="command2">

</form>

贤惠的棉花糖
健康的芒果
2025-12-04 20:32:57
那要看你是怎么定义的form2窗体。

你要是在IDE环境下,拖拽出来的窗体,那么双击窗体图标,就出现设计窗口了。

如果你是在form1中,直接new出来的,那么你看不到form2的窗口。

就是这样。

原因:因为你写在了form1中按钮的代码中,在设计模式下,那个form2还没有产生呢,所以你看不到form2的设计窗口。

明白没?

丰富的花卷
心灵美的乐曲
2025-12-04 20:32:57
你在窗体下写上这个函数就行,这个是监听系统消息函数

,肯定行

protected

override

void

WndProc(ref

Message

m)

{

if

(m.Msg

==

0x00A1

&&

m.WParam.ToInt32()

==

2)

return

base.WndProc(ref

m)

}

儒雅的月亮
冷艳的热狗
2025-12-04 20:32:57
在visualfoxpro的程序设计中form是属于窗口界面。窗口界面是指采用窗口形式显示计算机操作用户界面。VisualFoxPro简称VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。

贤惠的海燕
现代的老鼠
2025-12-04 20:32:57
此组件为一个输入框,利用它可以快速实现表单验证,输入内容

此组件为一个多行输入框,利用它可以快速实现表单验证,输入内容

此组件为一个单选框,数据在当前页面

当未选中任何值时,返回数据为null,否则返回数据对象{id:0,label:'名称'}。

此组件为一个多选框,数据在当前页面

当未选中任何值时,返回数据为[],否则返回数据对象[{id:0,label:'名称'}]。

此组件为一个提交按钮,专为form表单设计使用