星期四 阴 13~20℃
UCH资料更改中的“姓名”字符数限制,及JS处理中英文的maxlength
UCH 资料更改中的“姓名”字符数限制,默认为 10,即 5 个汉字,改成 20 应该够用了。
source/cp_profile.php
搜到 getstr($_POST['name'],默认为 getstr($_POST['name'], 10, 1, 1, 1),把 10 改成 20。
下面还有一个文件,没测出来是限制哪里的:
admin/admincp_space.php
搜到 getstr($_POST['name'],默认为 getstr($_POST['name'], 20, 1, 1, 1)
另外,在 input 中也加入限制吧,不要间接欺骗用户,假如用户写了长长的一串,结果提交完成后发现被截断了,多不爽。所以从填写时就用 maxlength="20" 限制它。不过可恨的是 maxlength 计算的是字符数,这样等于是可以输入 20 个汉字或 20 个字母,而实际需要的是限制 10 个汉字或 20 个字母。
问了下 Ryan,说要用 JS,讨来一个(下列代码复制到记事本存成 html):
<SCRIPT LANGUAGE="JavaScript">
//只需改代码中的两处20,不要改161
var maxLen=20;
function checkMaxInput(obj) {
var m=obj.value.length;
var n=m; var j=0;
for (var i=0;i<m;i++) {
if (obj.value.charCodeAt(i)<0||obj.value.charCodeAt(i)>161)
{ n=n+1; if ( i < 20 ) { j=j+1; } } }
if(n>maxLen) { obj.value=obj.value.substring(0,maxLen-j);
remLen1.innerText=’[最大可输入'; remLen2.innerText=maxLen; remLen3.innerText='字符,';
remLen4.innerText='您已达到输入上限!'; remLen5.innerText=']‘; }
else { remLen1.innerText=’[最大可输入'; remLen2.innerText=maxLen;
remLen3.innerText='字符,还可输入'; remLen4.innerText=maxLen-n; remLen5.innerText='字符]‘; } }
//–>
</SCRIPT><textarea name="creditcontent" cols="45" rows="5" onKeyDown="checkMaxInput(this)" onKeyUp="checkMaxInput(this)" onBlur="checkMaxInput(this)">
</textarea>
<br/><br/>
<input type="text" onKeyDown="checkMaxInput(this)" onKeyUp="checkMaxInput(this)" onBlur="checkMaxInput(this)" />
<br/><br/>
<font id="remLen1"></font>
<font color=red id="remLen2"></font>
<font id="remLen3"></font>
<font color=red id="remLen4"></font>
<font id="remLen5"></font>
整理精简后(特别注意:如果无效,检查 js 是否紧接在 <input> 上方):
<script>
//只需改代码中的两处20,不要改161
var maxLen=20;
function checkMaxInput(obj) {
var m=obj.value.length;
var n=m; var j=0;
for (var i=0;i<m;i++) {
if (obj.value.charCodeAt(i)<0||obj.value.charCodeAt(i)>161) {
n=n+1;
if ( i < 20 ) {
j=j+1;
}
}
}
if(n>maxLen) {
obj.value=obj.value.substring(0,maxLen-j);
}
}
</script><input type="text" onKeyDown="checkMaxInput(this)" onKeyUp="checkMaxInput(this)" onBlur="checkMaxInput(this)" />
前半生与后半生
在布棉的《谁没有曾经 但谁会整天说曾经?》看到的一条回复:
成王败寇,自古如此!
韩信胯下之辱之所以能成为美谈是因为他最终火了,红了。。。
人一生要看的永远是后半生。
前半生即使是一坨屎,只要后半生变成金子,恭喜你,你是正面教材!
前半生是金子,后半生变成一坨屎,不好意思,你就是一坨屎!
前半生与后半生很有道理,自古如此。
回复:以前有一个谁说过,很多时候评论比文章好看,很有根据的:)
朱高 回复于 2009-4-17 19:04:55