代问如下:
<Script language="JavaScript">
<!--
function examine()
{
    if(!theme()){return false;}
    if(!cameraman()){return false;}
    return ture;
}
function isbank(s)
{
    var len=s.length;
    var i;
    for(i=0;i<len;i++)
    {
        if(s.chatAt(i)!=" ") return false;
    }
    return true;
}
function theme()
{
    if(isbank(document.add.theme.value))
    {
        alert("主题的值里不能为空!");
        document.add.theme.focus();
        return false;
    }
    return ture;
}
function cameraman()
{
    if(isbank(document.add.cameraman.value))
    {
        alert("摄影者的值不能为空!");
        document.add.cameraman.focus();
        return  false;
    }
    return ture;
}
//--></Script>
<form  action="AddNote" name="add" method="post" onSubmit="return examine()">
<input type="text" name="theme"  size="15" onchange="theme()">
<input type="text" name="cameraman"  onchange="cameraman()" size="15">
<input type="submit" name="save" value="保存" >
</form>问题是:每次按保存,如果文本theme为空值则在JavaScript的examine()函数中成功运行if(!theme()){return false;}语句,如果文本theme的值不为空,不管文本cameraman的值是否为空就直接跳转页面,不会去检查examine()函数中if(!cameraman()){return false;}语句
还有是不管examine()函数中最后一条是返回true,还是返回false,按保存后,如果如果文本theme的值不为空,照样跳转

解决方案 »

  1.   

    TRY:
    <Script language="JavaScript">
    <!--
    function examine(){
        if(!ca()){return false;}
        if(!cb()){return false;}
        return true;
    }
    function isbank(s){
    return s.replace(/ /g,"").length>0?true:false;
    }
    function ca(){
        if(!isbank(document.add.theme.value)){
            alert("主题的值里不能为空!");
            document.add.theme.focus();
            return false;
        }else{
    return true;
        }
    }
    function cb(){
        if(!isbank(document.add.cameraman.value)){
            alert("摄影者的值不能为空!");
            document.add.cameraman.focus();
            return false;
        }else{
    return true;
        }
    }
    //--></Script>
    <form  action="AddNote" name="add" method="post" onSubmit="return examine()">
    <input type="text" name="theme"  size="15" onchange="ca()">
    <input type="text" name="cameraman"  onchange="cb()" size="15">
    <input type="submit" name="save" value="保存" >
    </form>
      

  2.   

    不行?你直接复制保存为test.htm试试?
      

  3.   

    replace(/ /g,"")(g为全局标志)意思是替换所有空格为"",否则输个空格也会提交function isbank(s)
    {
        var len=s.length;
        var i;
        for(i=0;i<len;i++)
        {
            if(s.chatAt(i)!=" ") return false;
        }
        return true;
    }
    是多余的,直接if(document.add.cameraman.value==""){}多方便