function chklen(obj,len)
{
    obj.value=obj.value.trim();//去除头尾空格
    if (obj.value.lenX()>len)
    {
        alert("抱歉,长度不能大于"+len+"个字符(一个中文等于两个字符)");
        obj.focus();obj.className="onErr";
        return false;
    }
}
function chktitle(obj){
obj.value=obj.value.trim();
if(obj.value!=""){
var regx = /([^a-z0-9\u4e00-\u9fa5])(?=\1+)\1+/g;
 obj.value = obj.value.replace(regx,"$1"); 
}}以上两个函数我单独调用没有问题。<input id="title" name="title" type="text" size="42" maxlength="60" onblur="chktitle(this);chklen(this,60)">但如果想要在一个函数中调用另一个,就出问题了
function chktitle(obj){
obj.value=obj.value.trim();
if(obj.value!=""){
var regx = /([^a-z0-9\u4e00-\u9fa5])(?=\1+)\1+/g;
 obj.value = obj.value.replace(regx,"$1"); }
chklen(obj,60);}<input id="title" name="title" type="text" size="42" maxlength="60" onblur="chktitle(this)">请问怎么样才能在一个函数中调用另一个函数呢,并且变量能顺利传递?

解决方案 »

  1.   

    简单测试了下好像可以。报什么错?<script>
    String.prototype.trim = function(){
      return this;
    }
    String.prototype.lenX = function(){
      return this.length;
    }function chklen(obj,len)
    {
        obj.value=obj.value.trim();//去除头尾空格
        if (obj.value.lenX()>len)
        {
            alert("抱歉,长度不能大于"+len+"个字符(一个中文等于两个字符)");
            obj.focus();obj.className="onErr";
            return false;
        }
        alert("ok");
    }
    function chktitle(obj){ 
    obj.value=obj.value.trim(); 
    if(obj.value!=""){ 
    var regx = /([^a-z0-9\u4e00-\u9fa5])(?=\1+)\1+/g; 
    obj.value = obj.value.replace(regx,"$1"); } 
    chklen(obj,6);
    }</script>
    <input id="title" name="title" type="text" size="42" maxlength="60" onblur="chktitle(this)">
      

  2.   

    试了一下没报错啊,可以执行,想了想是否楼主JS代码中没定义属性啊?
    Object不支持直接使用以下属性的:
    1)obj.value.lenX
    2)obj.value.trim()
    所以你要先定义啊:2楼正解