日期:2014-05-16  浏览次数:20453 次

一些常用的JS方法
出来工作几年了, 一直没养成备份知识的习惯, 要用了直接百度. 留个备份,免得麻烦!

获取地址的参数
function search(param) {
		var re=new RegExp("[&,?]"+param+"=[^\\&]*","i");
		var str=re.exec(document.location.search);
		if(str == null || str=="" || str.length==0){
		    return "";
		} else {
			str = str+"";
			str = str.split("=")[1];
		    return str;
		}
	}


input type="file" 不可编辑
今天在做项目的时候,遇到上传文本框的问题,
<input type="file" size="100" name="photoupload" />
在firefox中,该控件产生的文本框是默认不可编辑的,但是在IE下,该文本框可编辑,
根据用户需要,此文本框应为不可编辑。
但是直接将其设置为“readonly”或者“disabled”后,对应的浏览按钮也无法使用了。所以此法不通。

在网上搜索了一些资料,主要有以下几种方法:
1.变通处理:
<input type=file id=a1 style="visibility:hidden">
<input id=a2 type=text readonly>
<input type=button value=浏览 onclick="a1.click(); a2.value= a1.value">

2.增加如下属性:
contenteditable="false"

实例代码:
<input type="file" style="width: 446px" id="ptlFile" contenteditable="false"/>




去空格:
String.prototype.trim = function() {   
    return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');   
}  


计算字符串长度:
function getBytesLength(str) {
    return str.replace(/[^\x00-\xff]/g, 'xx').length;   
}


为textarea设置maxlength属性:
1.如果只是想限制字数, 又不想写太多的话, 可以用
<textarea onkeyup="this.value = this.value.slice(0, 80)"></textarea>
//或者
<textarea onkeyup="this.value = this.value.substring(0, 80)"></textarea>

2.首先在textarea 上定义一个 maxlength 属性:
<textarea rows="3" cols="40" maxlength="200" onkeydown="checklength(this);">
</textarea>
// 加上这个方法
function checklength(obj) {
        var max = obj.maxlength; 
        if(max == null || max == "" || max == undefined) {
            return;
        }
        if(obj.value.length > max) {
            alert("请不要超过最大长度:" + max);
            obj.value=obj.value.substring(0,(max-1));
            return;
        }
    }