if(null==rename)
  return;这样就会跳出函数了啊。

解决方案 »

  1.   

    在Rename函数中再次调用Rename函数时,若操作者按了“取消”,程序依然会执行下去。
    即alert("sss")在二次prompt判别取消时会漏出执行。你的逻辑有点别扭,我改了下以作参考:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="Seagle.K">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="JavaScript">
    String.prototype.trim = function()
    {
    return this.replace(/\s+/g, '');
    }function judge(str)
    {
    var rename;
    if (str.trim() != '')
    {
    rename = Rename(str);
    alert(rename);
    }else
    alert("输入名为空")
    }function Rename(name)
    {
    var rename = prompt("我要重命名为。", name);
     
    if (rename == null)
    {
    return name;
    }else if (rename.trim() == '')
    {
    alert("重命名的名称不可以为空格字符");
    return Rename(name)
    }else
    return rename;
    }</script>
    <style type="text/css"></style>
    </head>
    <body>
    <input type="text" id="txt" value="">
    <input type="button" value="submit" name="btn" onclick="judge(txt.value)">
    </body>
    </html>