24 08年9月

jquery的find的filter的区别


filter will select a certain subset (zero or more) of the already
selected elements.
jquery的filter将在一组已经选取的元素里面选择
find will select a set of (zero or more) elements that are descendants
of the already selected elements.
jquery的find将在一组已经选取的元素的子节点里面选择

Here is an example:
示例如下

$(’div’).filter(’.elephants’); // <– selects the second div, because
it has class=”elephants”

$(’div’).find(’.elephants’); // <– selects the first paragraph,
because it has class=”elephants”

* Note that these two examples are very simple and would probably be
better written as …

$(’div.elephants’);

… and …

$(’div .elephants’);

贝贝爸 发表在 技术文章 | 等您写评论

28 08年5月

EXT中文手册下载

关键字:

找到一本ext中文手册,pdf版本的。看着不错。
ext-中文手册下载.pdf

贝贝爸 发表在 技术文章 | 3个评论

9 08年5月

javascript把数字格式化转换成货币类型

关键字:

做财务的东西总是比较有挑战的,性能,易用性,准确性都有很高要求,包括一些小的细节。
比如金额需要显示的时候转换成有千分位,小数点后保留2位等。去编辑的时候,又要格式化,把逗号都去掉。网上找了段代码,但是再次编辑会有问题,修改了一下,代码如下:

  1. function outputMoney(number)
  2. {
  3.   number=number.replace(/\,/g,"");
  4.   if (number=="") return "";
  5.   if(number<0)
  6.   return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0);
  7.   else
  8.   return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
  9. }
  10. function outputDollars(number)
  11. {
  12.   if (number.length<= 3)
  13.   return (number == '' ? '0' : number);
  14.   else
  15.   {
  16.     var mod = number.length%3;
  17.     var output = (mod == 0 ? '' : (number.substring(0,mod)));
  18.     for (i=0 ; i< Math.floor(number.length/3) ; i++)
  19.     {
  20.       if ((mod ==0) && (i ==0))
  21.       output+= number.substring(mod+3*i,mod+3*i+3);
  22.       else
  23.       output+= ',' + number.substring(mod+3*i,mod+3*i+3);
  24.     }
  25.     return (output);
  26.   }
  27. }
  28. function outputCents(amount)
  29. {
  30.   amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
  31.   return (amount<10 ? '.0' + amount : '.' + amount);
  32. }

用法:

<input name="TRANS_AMOUNT" type="text" id="TRANS_AMOUNT" size="15" onblur="this.value=outputMoney(this.value);" />

贝贝爸 发表在 技术文章 | 等您写评论

22 08年4月

jquery货币数值排序


jquery是个好东西,现在有很多基于它的plugin,tablesorter 就是一个。
上面有好多例子,就不转贴了。最近做了一个小东西,用到了它。
因为是财务的东西,金额用到了千分位,就是每多三位,加一个逗号。原来用都是按照数字来的,加了这个逗号之后,tablesorter不认为它是数字了,他认为234.00比1,234.53大。这也难怪,看了例子,如果是这种货币格式,前面如果是$符号的话,这种格式排序是没问题的。
仔细看了一下文档,原来人家已经考虑到了这样的问题,加下面代码就可以了。

$("#myTable").tablesorter({
    
headers: { 4: {sorter:"currency"}}
});

测试通过

另:推荐一篇关于中国教育讨论的文章

贝贝爸 发表在 原创技术文章 | 等您写评论

20 08年3月

上百个让你事半功倍的jquery插件

关键字:, ,

jQuery是一个了不起的javascript库,它可以是我们用很少的几句代码就可以创建出漂亮的页面效果。从网站的方面说,这使得javascript更加有趣。

很多jquery爱好者开发了基于jquery的插件,在这里
发现作者收集好多jquery的插件,转贴过来,给大家分享。

File upload-文件上传

Ajax File Upload
jQUploader
Multiple File Upload plugin
jQuery File Style
Styling an input type file
Progress Bar Plugin

Form Validation-表单验证

jQuery Validation
阅读全部»

贝贝爸 发表在 技术文章 | 等您写评论

15 08年2月

javascript怪异的access is denied

关键字:,

要实现这样一个功能,一个活动很多人报名,后台做操作界面,可以给某些数据做一下标记。
本地开发,本地的环境+测试数据测试通过,到了线上,就死活不行。
因为表单有简单的校验,用了javascript的document.submit()。总是报错,说 access is denied
原来怀疑是因为提交的按钮在浮动层的原因,后来发现数据量大了就不行,因为每条数据会有checkbox。
网上google了半天,也没有对症的解决方法,大多是安全因素造成的。在冥思苦想没有结果,正一筹莫展的时候。突然想起了GET提交的数据长度是有2048个字节的限制的。
然后查看了代码,原来从别的地方复制过来的form表单,用的是get方法,改成method=”post”后,问题解决。

车到山前啊。

贝贝爸 发表在 原创技术文章 | 等您写评论

6 07年12月

注意.js文件的编码

关键字:,

在调试javascript代码的时候在a.html引用了b.js这个文件。
原来测试都没有问题,但是paste了一些原来的老代码后,ie出现js报错,但是firefox不抱错。
报错的信息如下:
return statement outside of functions
狗了半天,说是retrun写的位置不对,但是新写的代码和老的代码都没问题啊,一直在用。没办法,只能一段段的删除
期间还报过下面的错误
XXX is not defined
XXX是一个函数里面传过来的变量。函数都没用,居然也抱错。狠奇怪。
最后只剩2个function了,中间有一段代码的注释,是中文的。我把注释删掉,好了!

突然想起来问题所在了,原来是编码问题。上面的a.html是utf-8编码,而js里面的中文是gbk的编码,由于a.html是全英文的,所以没注意编码。而老的代码一直都是在gbk或者gb2312编码的页面上用,所以一直也没问题。

最后修改a.html为gbk的编码,问题解决。
比较好的习惯可能应该是公用的js代码里面不要用中文的注释。。

贝贝爸 发表在 原创技术文章, 日记图片 | 等您写评论

20 07年7月

jquery 3例

关键字:,

jquery使用2例
1.把

<div id="a01">0</div>

里面的数值增加1
$(”#a01″)[0].innerHTML=parseInt($(”#a01″)[0].innerHTML)+1;
2.所有的checkbox有多少个选上的
var all_check=$(”input[@type=’checkbox’][@checked]”);
alert(all_check.length+”个选中”);
3.给每个checkbox增加click事件

$("input[@type='checkbox']").click(function(){
                                
Redirect_login()
                                
return true;
                            
});

贝贝爸 发表在 原创技术文章 | 等您写评论

19 07年7月

object doesn’t support this property or method

关键字:,

公司搞了一个爱情征文的活动,最后投票要写一个程序,对用户投票要做一些限制,在做前台校验的时候,最后提交出现了问题。我用的是
form1.submit();
结果IE报错,内容是:object doesn’t support this property or method。当时就觉得奇怪,开始查,觉得可能是
1.form的名字不叫form1
2.form的关闭标签没有使用
查了一下,2个问题都不是,也没有拼写错误。换了firefox,同样报错,内容是:document.form1.submit is not a function
顿时没了方向,google了一下,也有别人犯这个错误,找了一条有用的信息,说造成这个原因的可能是form里面又一个元素的名字叫submit。
一查,还真是,有个button的名字被俺不小心改成了submit,改了名字,问题解决。
写下来,鄙视自己一下。

贝贝爸 发表在 技术文章 | 等您写评论

21 07年6月

jquery进行and选择操作

关键字:,

工作中遇到需求,就是form里面所有的checkbox,radio都是必填的。
原来的做法是写多个function进行检查,部分代码如下

function checkElement(c) {
    
for (var i=0;i<c.length;i++) {
        
if (c[i].checked) return true;
    
}
    
c[0].focus();
    
alert("请完成所有答题!");
    
return false;
}

需要传入要检查的radio或者checkbox。
原来的写法是要把所有要检查的object都写进去,比如

result=checkElement(form1.check_1)&&checkElement(form1.radio_2);

如果有10道8道还可以,如果多的话,就要写好多,还容易漏掉,出错。
这次有100多道题目,所以想用jquery来选择所有的checkbox和radio,然后再来检查。
代码如下:

var myt="";
//用于存储生成的js校验字符串
//每次load页面,只生成一次,第一次的速度还是有点慢的
function check() {
    
var result = true;
    
if (myt==""){
//如果没有myt,就选择所有要检验的element列表,用来校验。
    
var alle=$("select[@name='text_79'],input[@type='radio'],input[@type='checkbox']");
    
for (var i=0;i < alle.length;i++) {
    
var myobj = alle[i];
        
if (i==0||alle[i].name!=alle[i-1].name){
            
if (i>0) myt+="&&";
//根据不同的类型,调用不同的check function
//应该写成一个函数,在函数里面判断比较好:S
            
if (myobj.type!="select-one")
            
myt+="checkElement(form1."+myobj.name+")"+"\n";
        
else
            
myt+="checkText(form1."+myobj.name+")"+"\n";
 
}
}}
//最后执行拼出来的js语句
    
eval("result =     "+myt+";");
    
if (!result) return false;
    
return true;
}

checkText是检验text的值的程度,是否为0,如果0就是未填写
花了点时间的是
var alle=$(”select[@name=’text_79′],input[@type=’radio’],input[@type=’checkbox’]”);
这一句,选择多个类型的element

但是上述写法有个问题,就是顺序和自然顺序不一样。还需要改进。

上面的and有点像union,如果是同一个element的属性的and,用下面的方法
$(”input[@name^=’S_’][@name$=’_R’]”).autocomplete(”autocomplete_backend.jsp”);

上面的是,input,名字以S_开始,并且以_R结束的元素。

贝贝爸 发表在 原创技术文章 | 等您写评论

美体小铺急救棒 the bodyshop body shop 美体小铺茶树精油 美体小铺接骨木花眼胶 美体小铺VE眼霜
美体小铺急救棒 the bodyshop body shop 美体小铺茶树精油 美体小铺接骨木花眼胶 美体小铺VE眼霜