解决方案 »
- 谁能告诉我这是怎么回事? js indexOf 的
- js一次浏览多个文件
- 非专业一个页面布局的请教,关于定位的,很简单???
- 求助!!高手IE8的ActiveX问题
- 急!在frame框架里,如何改变地址栏里的地址呢
- 如何通过javascript选定td中的文本?
- 这叫什么语法? <ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; bgcolor=&{scrollerbgcolor};>
- javascript的正则表达式和IE的版本有关系吗?
- 怎样让body里的内容抖动
- 这个为什么报错啊?
- js如何快速的操作DOM
- 当鼠标经过图片时,局部放大
/**************************************************************************************************
第一个问题 setService()给service赋值,但没有获得从页面上传来的值(迫切!!!)
**************************************************************************************************/
/**
*定义一种数据格式
*
*/
var service={
svrId :"0",
cstCustomer: void(0),
svrType: "",
svrTitle: "",
svrCustName: "",
svrStatus: "",
svrRequest: "",
svrCreateId:"",
svrCreateBy:"",
svrCreateDate:"",
svrDueId:"",
svrDueTo:"",
svrDueDate:"",
svrDeal:"",
svrDealId:"",
svrDealBy:"",
svrDealDate:"",
svrResult:"",
svrSatisfy:""
//toString:function(){return "service";}
}
/**
*判断不为空
*/
function isEmpty (obj){
switch(typeof(obj))
{
case "number":{if(obj=="0")return true;else return false;}
case "string":{if(obj=="")return true;else return false;}
case "boolean":{if(obj=="false")return true;else return false;}
case "object":{if(obj=="null")return true;else return false;}
case "undefined":{return true;}
case "null":{return true;}
default :{return false};
}
}
/**
*赋值操作
*/
function setService(){
for(var obj in service )
{
//if(validate.propertyKind(obj,service)=="property"){
var objs=$("#"+"service"+"_"+obj.toString());//取值
if(!(isEmpty(objs))) //判断元素是否存在
{
if(!(isEmpty(objs.val())))//判断元素的值是否存在
{
var s=objs.val();
service.obj=s; //赋值
alert(obj+" is "+service.obj);
}
}
//}
}
return service;
}
function test_1(){
alert(setService().srvTitle);
}
/**************************************************************************************************
第二个问题 用正则匹配一个时间格式 ,但没有匹配到
**************************************************************************************************/
function validateTime(timeStr){
var result=0; //表示时间格式不正确;
if((typeof timeStr)=="string"&&!(this.isEmpty(timeStr))){
/**
* 匹配 2007-08-22[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text1=new RegExp("/\d{4}-d\{1,2}-\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text1.test(timeStr)) {resulst= 1;alert("result "+result);}
/**
* 匹配 08-22-2007[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text2=new RegExp("/\d{1,2}-d\{1,2}-\d{4}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text2.test(timeStr)) {resulst= 2;alert("result "+result);}
/**
* 匹配 2007/08/22[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text3=new RegExp("/\d{4}\/d\{1,2}\/\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");if(text3.test(timeStr)) {resulst= 3;alert("result "+result);}
/**
* 匹配 08/22/2007[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text4=new RegExp("/\d{1,2}\/d\{1,2}\/\d{4}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text4.test(timeStr)) {resulst= 4;alert("result "+result);}
}
alert("result "+result);
return result;
}
function test_2(){
alert(validateTime("1900-01-01 12:20:20"));
}
///////////////////////////////
另
<input type="button" onclick="test_1()" value="test_1()" />
其实整体来说不是什么大问题,主要是LZ太过粗心,还有正则表达式的匹配不是很熟悉,有空多看一些例子,以后就不会犯这种毛病了
//////////////////////////
/**************************************************************************************************
第一个问题 setService()给service赋值,但没有获得从页面上传来的值(迫切!!!)
**************************************************************************************************/
/**
*定义一种数据格式
*
*/
var service={
svrId :"0",
cstCustomer: void(0),
svrType: "",
svrTitle: "",
svrCustName: "",
svrStatus: "",
svrRequest: "",
svrCreateId:"",
svrCreateBy:"",
svrCreateDate:"",
svrDueId:"",
svrDueTo:"",
svrDueDate:"",
svrDeal:"",
svrDealId:"",
svrDealBy:"",
svrDealDate:"",
svrResult:"",
svrSatisfy:""
//toString:function(){return "service";}
}
/**
*判断不为空
*/
function isEmpty (obj){
switch(typeof(obj))
{
case "number":{if(obj=="0")return true;else return false;}
case "string":{if(obj=="")return true;else return false;}
case "boolean":{if(obj=="false")return true;else return false;}
case "object":{if(obj=="null")return true;else return false;}
case "undefined":{return true;}
case "null":{return true;}
default :{return false};
}
}
/**
*赋值操作
*/
function setService(){
for(var obj in service )
{
//if(validate.propertyKind(obj,service)=="property"){
var objs=$("#"+"service"+"_"+obj.toString());//取值
if(!(isEmpty(objs))) //判断元素是否存在
{
if(!(isEmpty(objs.val())))//判断元素的值是否存在
{
var s=objs.val();
service.obj=s; //赋值
alert(obj+" is "+service.obj);
}
}
//}
}
return service;
}
function test_1(){
alert(setService().srvTitle);
}
/**************************************************************************************************
第二个问题 用正则匹配一个时间格式 ,但没有匹配到
**************************************************************************************************/
function validateTime(timeStr){
var result=0; //表示时间格式不正确;
if((typeof timeStr)=="string"&&!(this.isEmpty(timeStr))){
/**
* 匹配 2007-08-22[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text1=new RegExp("/\d{4}-d\{1,2}-\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text1.test(timeStr)) {resulst= 1;alert("result "+result);}
/**
* 匹配 08-22-2007[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text2=new RegExp("/\d{1,2}-d\{1,2}-\d{4}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text2.test(timeStr)) {resulst= 2;alert("result "+result);}
/**
* 匹配 2007/08/22[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text3=new RegExp("/\d{4}\/d\{1,2}\/\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text3.test(timeStr)) {resulst= 3;alert("result "+result);}
/**
* 匹配 08/22/2007[ 00:00:00] 其中” 00:00:00可有可无“
*/
var text4=new RegExp("/\d{1,2}\/d\{1,2}\/\d{4}( \d{1,2}:\d{1,2}:\d{1,2}){0,1}$/");
if(text4.test(timeStr)) {resulst= 4;alert("result "+result);}
}
alert("result "+result);
return result;
}
function test_2(){
alert(validateTime("1900-01-01 12:20:20"));
}
///////////////////////////////
[1]:少了个type(obj)方法,如下:
type(obj){if(obj===null)return "null"}(typeof(o)方法是不能直接判断null的)
[2]:<input onclick='test_1()' value="test">
这两个错误,您 找到了啊,呵呵
但还有个错,您没有找到哈,如下:
[3][color=#666699function validateTime(timeStr){
var result=0; //表示时间格式不正确;
if((typeof timeStr)=="string"&&!(isEmpty(timeStr))){
[/color]
可以对比看下.
这些错都是因匆忙导致的.
最主要的错您还没有找到! 如果您把我的代码部署到一个网站项目里,你会发现:
在我写的setService()中alert出来的是有值的;但在test_2()中alert却没有值!这才是问题的关键所在!!!!
这个问题,我的老师已经给我解决了,只须改很小的一个地方:请对比看 :
[4] function setService(){
for(var obj in service )
{
//if(validate.propertyKind(obj,service)=="property"){
var objs=$("#"+"service"+"_"+obj.toString());//取值
if(!(isEmpty(objs))) //判断元素是否存在
{
if(!(isEmpty(objs.val())))//判断元素的值是否存在
{
var s=objs.val();
service[obj]=s; //赋值
alert(obj+" is "+service[obj]);
}
}
//}
}
至于,您对那个时间匹配的做法,您只是通过 new 一个RegExp对象来包括正则表达试的,对正则表达式的 内容似乎没有改变哈,我认为创建与不创建RegExp对象关系不大哈,这个正则我没有好好的验证,只是弄上面的那个问题了,现在主要的问题解决了,向我的老师致敬!,哈哈.