如何让用户知道错误信息(在线等,急)。

时间:2022-10-30 16:08:28
现在的情况是这样。JSP一个多行文本输入框。用户可以在上面输入电话号码,最少为一个,暂时没有上限,现在遇到一个问题,当用户输入的电话号码大于10个的时候(这里为了测试方便,所以只输入10个,实际情况不会少于1W个),当这些电话号码当于有一个或多个出错(如:电话号码长度不是11位,电话号码其中包含了英文),服务端(Action)会拒绝提交,我想做的是,提醒用户出错电话号码的位置在哪里,方便用户修改,请问各位高手应该怎么做。

我想到的解决办法:
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。
2。用颜色来区分,就是在出错的哪个电话号码的前后设置不一样的颜色(如:正确的颜色是普通,从错误的号码开始,一直到结束,用红色)。但没做出来。
span {
  color: #ab0000;
  font-size: 18px;
}
function phones(obj) { //obj是Action判断电话出错后电话号码,正确的直接返回多行文本框,错误的弹出对话框。
if (obj != "") {   
  alert("错误的电话号码是:"+obj);
var txt=document.getElementById("smsTel").value;//多行文本框。
var span = document.createElement("span");  
  span.innerHTML = obj;
  txt.appendChild(span);
}
}
IE6说,不支持(txt.appendChild(span))对象和方法。
各位大哥,帮帮忙,急,在线等。

13 个解决方案

#1


如何让用户知道错误信息(在线等,急)。

#2


用jQuery很简单,在出错的那个文本框上addClass('span')就可以了。不过这里建议你定义的样式不要用span,换个error什么的。

#3


//注意:txt不是文本框,而是文本框的值。document.getElementById("smsTel")才是文本框。
var txt=document.getElementById("smsTel").value;//多行文本框。

var span = document.createElement("span");  
  span.innerHTML = obj;
  //文本框的值当然不能添加儿子了,文本框才可以。
  txt.appendChild(span);
}
}

#4


补充一下:
我的上面说法有误。
smsTel应该不是文本框,文本框应该理解为<input type="text" ... />
所以我觉得smsTel可能是一个div或者span或者其他的某个东西。

#5


明白了,按楼主的说法,smsTel可能是一个文本区<textarea>...</textarea>
我印象中文本区应该不可以appendChild一个span吧

#6


有道理啊。

#7


仔细分析一下这个问题,在一个文本区中要输入上万的电话号码,我想在实际系统中很少这么做,用户体验很不好。
这上万个电话号码是由用户一点一点就在你那个文本区中输入的吗?不知道要输入到什么时候,万一不小心关了浏览器,一切都得重来。没有用户愿意这么干。
那我可以想象这上万个电话号码是从某个文件(文本或者excel等)复制过来的,那个文件是用户花了很多天时间,甚至是从各个地市汇总过来的。那我们可以实现从文件中读取,发现出问题了,告诉用户哪些行错了就可以。

姑且算这个要求合理。
在textarea设置一小部分字符变色,是不可以的,只能全变。里面也不能加span元素。这2中方法不可行,除非不要在textarea中输入。
所以非要用textarea的话,可以用第一种方法,
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找)
事实上在上万个电话号码中找变色的,也很难呢。


#8


这个业务逻辑有一个导入电话号码的功能,导入的时候没有做相关判断,因为如果在这里判断了,用户再修改导入后的怎么办,如果不让用户输入,哪么只有一个电话号码也要导入,肯定不行。
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找),找星号也难啊。我认为颜色区分稍好一点。
但还是谢谢你的建议。
有没有其它好的方法实现。

#9


如此大量的号码为什么不做导入功能要在也输入呢 
谁会有耐心一次输入1w个号码 
就算有耐心输入了 session不会失效吗 

#10


引用 8 楼 bisubisu 的回复:
这个业务逻辑有一个导入电话号码的功能,导入的时候没有做相关判断,因为如果在这里判断了,用户再修改导入后的怎么办,如果不让用户输入,哪么只有一个电话号码也要导入,肯定不行。
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找),找星号也难啊。我认为颜色区分稍好一点。
但还是谢谢你的建议。……


想改变textarea里某一个字符颜色的话建议用下fckeditor试试,
当遇见错误的字符串时,错误的字符串换成加上fckeditor内添加颜色的标签的字符串,然后再输出到textarea中,就会有变色了。

#11


请问
wangchao523
fckeditor是什么,这个怎么做。 能说详细点吗?

#12


fckeditor   如果lz没有其它需求还是不要用这玩意比较好.   最少版本也要700多K.太胖了.   还不如试试jquery

#13


3q.问题解决了,是我对JAVASCRIPT题解不够。
function phones(obj) { //obj是服务端返回的信息
if (obj != "") {      
var txt=document.getElementById("smsTel"); 
var span = document.createElement("span");    
span.style.color = "red"; 
span.innerHTML=obj; 
txt.appendChild(span);
document.getElementById("smsTel").focus();
}
}
正确的已经负值给多行广西框了。

#1


如何让用户知道错误信息(在线等,急)。

#2


用jQuery很简单,在出错的那个文本框上addClass('span')就可以了。不过这里建议你定义的样式不要用span,换个error什么的。

#3


//注意:txt不是文本框,而是文本框的值。document.getElementById("smsTel")才是文本框。
var txt=document.getElementById("smsTel").value;//多行文本框。

var span = document.createElement("span");  
  span.innerHTML = obj;
  //文本框的值当然不能添加儿子了,文本框才可以。
  txt.appendChild(span);
}
}

#4


补充一下:
我的上面说法有误。
smsTel应该不是文本框,文本框应该理解为<input type="text" ... />
所以我觉得smsTel可能是一个div或者span或者其他的某个东西。

#5


明白了,按楼主的说法,smsTel可能是一个文本区<textarea>...</textarea>
我印象中文本区应该不可以appendChild一个span吧

#6


有道理啊。

#7


仔细分析一下这个问题,在一个文本区中要输入上万的电话号码,我想在实际系统中很少这么做,用户体验很不好。
这上万个电话号码是由用户一点一点就在你那个文本区中输入的吗?不知道要输入到什么时候,万一不小心关了浏览器,一切都得重来。没有用户愿意这么干。
那我可以想象这上万个电话号码是从某个文件(文本或者excel等)复制过来的,那个文件是用户花了很多天时间,甚至是从各个地市汇总过来的。那我们可以实现从文件中读取,发现出问题了,告诉用户哪些行错了就可以。

姑且算这个要求合理。
在textarea设置一小部分字符变色,是不可以的,只能全变。里面也不能加span元素。这2中方法不可行,除非不要在textarea中输入。
所以非要用textarea的话,可以用第一种方法,
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找)
事实上在上万个电话号码中找变色的,也很难呢。


#8


这个业务逻辑有一个导入电话号码的功能,导入的时候没有做相关判断,因为如果在这里判断了,用户再修改导入后的怎么办,如果不让用户输入,哪么只有一个电话号码也要导入,肯定不行。
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找),找星号也难啊。我认为颜色区分稍好一点。
但还是谢谢你的建议。
有没有其它好的方法实现。

#9


如此大量的号码为什么不做导入功能要在也输入呢 
谁会有耐心一次输入1w个号码 
就算有耐心输入了 session不会失效吗 

#10


引用 8 楼 bisubisu 的回复:
这个业务逻辑有一个导入电话号码的功能,导入的时候没有做相关判断,因为如果在这里判断了,用户再修改导入后的怎么办,如果不让用户输入,哪么只有一个电话号码也要导入,肯定不行。
1。在出错的位置换行,这个好解决,但要用户在上万个电话号码当中找换行的,太行不通了。(建议改为在前面加上“******************”之类的,好查找),找星号也难啊。我认为颜色区分稍好一点。
但还是谢谢你的建议。……


想改变textarea里某一个字符颜色的话建议用下fckeditor试试,
当遇见错误的字符串时,错误的字符串换成加上fckeditor内添加颜色的标签的字符串,然后再输出到textarea中,就会有变色了。

#11


请问
wangchao523
fckeditor是什么,这个怎么做。 能说详细点吗?

#12


fckeditor   如果lz没有其它需求还是不要用这玩意比较好.   最少版本也要700多K.太胖了.   还不如试试jquery

#13


3q.问题解决了,是我对JAVASCRIPT题解不够。
function phones(obj) { //obj是服务端返回的信息
if (obj != "") {      
var txt=document.getElementById("smsTel"); 
var span = document.createElement("span");    
span.style.color = "red"; 
span.innerHTML=obj; 
txt.appendChild(span);
document.getElementById("smsTel").focus();
}
}
正确的已经负值给多行广西框了。