前端的东西不是主要学习的对象,但是难免在各种地方用到,这里记录一些平常卡住自己的东西:
(1):两个select下拉框级联的实现
function changeSelect(){
var aSelect = document.getElementById("aSelect");
var aNo = aSelect.options[aSelect.selectedIndex].value;
var bSelect = document.getElementById("bSelect");
......
//通过ajax请求得到bSelect的值,传入参数为aNo,即第一个select选中后的值
//var result;
//假设返回的值是result,是一个数组。
......
var len = result.length;
bSelect.innerHTML = "";
//一开始以为下面这句话就可以解决了,但是实际上不行,
//它只能显示opt</option>,前面的<option value=\'0\'>看不见了,具体原因不详。
//bSelect.innerHTML = "<option value=\'0\'>opt</option>";
var oOption = document.createElement("OPTION");
oOption.text="--请选择--";
oOption.value=-1;
bSelect.add(oOption);
for(var i=0;i<len;i=i+2){
var op = document.createElement("OPTION");
op.text=result[i];
op.value=i;
areaSelect.add(op);
}
}
(2): js中的window.open方法,打开一个新的窗口
window.open(url,name,parameters) ,也可以直接window.open(url);
其中:
url 为子窗口路径 ,可以带参数,如abc.jsp?id=12&name=23;这样就可以传2个参数过去
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
在目标页面接收参数的代码如下:
var query = location.search.substring(1);
var values= query.split("&");
for(var i = 0; i < values.length; i++) {
var pos = values[i].indexOf('=');
if (pos == -1) continue;
var paramname = values[i].substring(0, pos);
var value = values[i].substring(pos+1);
}
(3):js打印页面:
可以直接调用js内置的函数:
window.print()
这个函数默认打印当前页面的所有内容。
但是有时候要自定义打印,可以用ie自带的一个WebBrowser对象来实现打印的自定义控制:
首先在html代码上加一个隐藏控件,
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
这个控件的名字叫WebBrowser,等下会用到,再声明一个样式属性:
<style type="text/css" media=print>
.noprint{display : none }
</style>
表明有这个属性的标签就不需要打印,如以下标签就不要打印:
<div class="noprint">
//div里面的内容
<div>
最后有一个打印按钮,按钮的事件调用打印相关的函数就ok了,以下列出一些常用的打印相关函数,其中WebBrowser就是上面的object隐藏控件:
//打印
WebBrowser1.ExecWB(6,1);
//打印设置
WebBrowser1.ExecWB(8,1);
//打印预览
WebBrowser1.ExecWB(7,1);
(4): 表单中属性enctype="multipart/form-data"的意思, 是设置表单的MIME编码,以二进制数据上传表单中的值,所以用request得不到传过来的值。默认编码格式是application/x-www-form-urlencoded,不能用于文件上传;可以通过request得到传过来的参数,只有使用了multipart/form-data,才能完整的传递文件数据。当设置enctype="multipart/form-data"的时候,可以通过jspSmartUpload组件来解析上传过来的值。具体用法百度。