jsp页面中的初始化方法,类似于flex中的creationComplete方法,是在页面加载完成之后就调用的方法,有两种写法:
第一种:
window.οnlοad=function(){
//在此进行初始化方法
};
这种方法有个局限性,就是在一个jsp中只能有一个该方法。而且该方法需要在页面的所有东西加载完成之后才运行,包括图片。
还有就是利用jQuery的方法进行初始化方法:
第二种:
$(document).ready(function() {
//在此进行初始化的方法编写
});
该方法没有数量上的局限性,可以编写多个该方法,而且还有简写形式。而且该方法是在页面的DOM结构绘制完毕后就执行,不必等到加载完毕。
第二种的简写形式:
$(function(){
//在此进行初始化方法编写
});
在初始化方法中对table进行操作,得到table中的某一列:
$(function() {
//得到ID为grid的TABLE
var tab = document.getElementById("grid");
//得出Table的所有行,rows[i].cells:得到每行的所有列
var rows = tab.rows;
for ( var i = 1; i < rows.length; i++) {
var plan_count = rows[i].cells[4].innerHTML;//计划数量
var fact_count = rows[i].cells[7].getElementsByTagName("input")[0].value;//实际数量
if (plan_count == fact_count)//当计划数量和实际数量相等时实际数量不可编辑
rows[i].cells[7].getElementsByTagName("input")[0].readOnly = true;//设置只读
}
});
利用struts2的标签如何去除Action中的值,前提是这个值在Action中必须有get方法。
<s:property value="OGNL表达式"/>
每次请求action转发回来后,当前页面会有一个valueStack,action里的全部信息都保存在里面,比如你action里有个字段username(提供的有get方法)
则你在<s:property value="username"/>就能直接取到值。如果是对象ognl还可以支持导航:<s:property value="user.username"/>
同时当前页面还保存的有ActionContext(不知道怎么翻译...),跟valueStack一样,也可以直接取值,但是前面要加个#号以区别。
request、application对象都在actionContext里面,可以这么取requst里的值<s:property value="#request.username"/>
jQuery的Ajax写法:
$.post(url, {
'参数1' : a,
'参数2' : b,
...
},
function(data, status) {
//data为Action中传过来的数据,字符串或为html字符串;status为状态,成功为success
alert("数据:" + data + "\n状态:" + status);
}
);
其中url为调用的Action的路径(我后台用的是struts2,有用PHP和asp的或jsp的,我这里就不介绍了);紧跟着的其实是一个参数数组,用大括号包起来的数组;然后是回调函数,函数中有连个参数,第一个data为Action中返回的数据,status为返回的状态数据。下面附上Action中的部分代码:
...
HttpServletResponse repon = getHttpResponse();//得到Response对象
try {
repon.getWriter().write("success");//向response中写入要返回的信息,在此可以拼接html(这个数据就是前面回调函数中的data)
} catch (IOException e) {
e.printStackTrace();
}
那向response中写入返回信息时,不能转发,转发的话会返回你转发的页面。还有就是有需要字符转义的话可以用一下语句:repon.setCharacterEncoding("UTF-8");写入之后最好进行刷新:repon.getWriter().flush();。
给table中所有的td添加鼠标点击事件:
$(function(){
$("td[name*='confirm']").click(function() {//获得系统当前时间
var curDate = new Date();
<span style="white-space:pre"> </span>})
}
一下再附上一个在js中得到当前时间的函数,格式为(yyyy-mm-dd)
//得到当前时间字符串(年-月-日)
function CurentTime()
{
var now = new Date();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var day = now.getDate(); //日
//var hh = now.getHours(); //时
//var mm = now.getMinutes(); //分
var clock = year + "-";
if(month < 10)
clock += "0";
clock += month + "-";
if(day < 10)
clock += "0";
clock += day + " ";
//if(hh < 10)
//clock += "0";
//clock += hh + ":";
//if (mm < 10) clock += '0';
//clock += mm;
return(clock);
}
<pre name="code" class="javascript">//对象转json对象
var jsonstr = {
<span style="white-space:pre"> </span>"XX" : "XX",
"XX" : "XX"
};
var param = $.toJSON(jsonstr);
//js中得到项目的发布路径
var url = ${pageContext.request.contextPath}
//利用document向表格中动态添加行和列
var cost_table=document.getElementById("表格ID");
var cost_rowObj=cost_table.insertRow(-1);//括号中的是第几行也就是添加的位置,-1为倒数第一行,-2为倒数第二行
var cost_cell1Obj=cost_rowObj.insertCell(-1);
var cost_cell2Obj=cost_rowObj.insertCell(-1);
var cost_cell3Obj=cost_rowObj.insertCell(-1);
var cost_cell4Obj=cost_rowObj.insertCell(-1);//一共添加4列,每列都添加到最后一个
cost_cell1Obj.innerHTML = "<input name='sel_radio' type='checkbox'>";//利用document向列中添加内容
下面给出一个小写数字转换为汉字的方法,如100-->壹佰元整:
/*
* 功能:将货币数字(阿拉伯数字)(小写)转化成中文(大写)
*
* 参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06") 说明:1.目前本转换仅支持到 拾亿(元)
* 位,金额单位为元,不能为万元,最小单位为分 2.不支持负数
*/
function numtochinese(Num) {
for (i = Num.length - 1; i >= 0; i--) {
Num = Num.replace(",", "")// 替换数据中的“,”
Num = Num.replace(" ", "")// 替换数据中的空格
}
Num = Num.replace("¥", "")// 替换掉可能出现的¥字符
if (isNaN(Num)) {
// 验证输入的字符是否为数字
//alert("请检查小写金额是否正确");
return;
}
// ---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
part = String(Num).split(".");
newchar = "";
// 小数点前进行转化
for (i = part[0].length - 1; i >= 0; i--) {
if (part[0].length > 10) {
//alert("位数过大,无法计算");
return "";
}// 若数量超过拾亿单位,提示
tmpnewchar = ""
perchar = part[0].charAt(i);
switch (perchar) {
case "0":
tmpnewchar = "零" + tmpnewchar;
break;
case "1":
tmpnewchar = "壹" + tmpnewchar;
break;
case "2":
tmpnewchar = "贰" + tmpnewchar;
break;
case "3":
tmpnewchar = "叁" + tmpnewchar;
break;
case "4":
tmpnewchar = "肆" + tmpnewchar;
break;
case "5":
tmpnewchar = "伍" + tmpnewchar;
break;
case "6":
tmpnewchar = "陆" + tmpnewchar;
break;
case "7":
tmpnewchar = "柒" + tmpnewchar;
break;
case "8":
tmpnewchar = "捌" + tmpnewchar;
break;
case "9":
tmpnewchar = "玖" + tmpnewchar;
break;
}
switch (part[0].length - i - 1) {
case 0:
tmpnewchar = tmpnewchar + "元";
break;
case 1:
if (perchar != 0)
tmpnewchar = tmpnewchar + "拾";
break;
case 2:
if (perchar != 0)
tmpnewchar = tmpnewchar + "佰";
break;
case 3:
if (perchar != 0)
tmpnewchar = tmpnewchar + "仟";
break;
case 4:
tmpnewchar = tmpnewchar + "万";
break;
case 5:
if (perchar != 0)
tmpnewchar = tmpnewchar + "拾";
break;
case 6:
if (perchar != 0)
tmpnewchar = tmpnewchar + "佰";
break;
case 7:
if (perchar != 0)
tmpnewchar = tmpnewchar + "仟";
break;
case 8:
tmpnewchar = tmpnewchar + "亿";
break;
case 9:
tmpnewchar = tmpnewchar + "拾";
break;
}
newchar = tmpnewchar + newchar;
}
// 小数点之后进行转化
if (Num.indexOf(".") != -1) {
if (part[1].length > 2) {
//alert("小数点之后只能保留两位,系统将自动截段");
part[1] = part[1].substr(0, 2)
}
for (i = 0; i < part[1].length; i++) {
tmpnewchar = ""
perchar = part[1].charAt(i)
switch (perchar) {
case "0":
tmpnewchar = "零" + tmpnewchar;
break;
case "1":
tmpnewchar = "壹" + tmpnewchar;
break;
case "2":
tmpnewchar = "贰" + tmpnewchar;
break;
case "3":
tmpnewchar = "叁" + tmpnewchar;
break;
case "4":
tmpnewchar = "肆" + tmpnewchar;
break;
case "5":
tmpnewchar = "伍" + tmpnewchar;
break;
case "6":
tmpnewchar = "陆" + tmpnewchar;
break;
case "7":
tmpnewchar = "柒" + tmpnewchar;
break;
case "8":
tmpnewchar = "捌" + tmpnewchar;
break;
case "9":
tmpnewchar = "玖" + tmpnewchar;
break;
}
if (i == 0)
tmpnewchar = tmpnewchar + "角";
if (i == 1)
tmpnewchar = tmpnewchar + "分";
newchar = newchar + tmpnewchar;
}
}
// 替换所有无用汉字
while (newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");
newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("亿万", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零元", "元");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
if (newchar.charAt(newchar.length - 1) == "元"
|| newchar.charAt(newchar.length - 1) == "角")
newchar = newchar + "整"
return newchar;
}
不断更新...