用于onblur事件的Javascript

时间:2013-04-11 18:36:40

标签: javascript asp.net webmatrix onblur

使用webmatrix,asp.net& amp;创建注册表单Javascript,sql server CE。我正在为Username文本框编写onblur事件。当焦点离开文本框时,它会检查数据库中是否存在现有用户名,如果是,则显示标签。代码不起作用,因为如果在“@ {}”块内部,则忽略js代码。它在“@ {}”块之外工作正常,但后来我无法在那里给出条件。请帮帮我。

<html>
<head>
<script>
function RegUsernameLeave()
{
  @{
     regusername=Request.Form["regusername"];
     if(!regusername.IsEmpty())
      {
        var db = Database.Open("myshop");
        int usercount = db.QueryValue("select count(*) from webusers where username=@0",regusername);
        db.Close();
        if(usercount!=0){
        document.getElementById("msg").innerHTML="Username already exists";}
      }
   }
}
</script>
</head>
<body>
<label>Username:</label>
<p><input type="text" id="regusername" onblur="RegUsernameLeave()"/>
<label id="msg"></label></p>
</body>
 </html>

1 个答案:

答案 0 :(得分:0)

我正在黑暗中完全刺伤..但也许是沿着这些方向的东西?

基本上 - 我假设@ {}被打印到JS中 - 所以如果我们可以执行服务器端代码并​​输出它等于你的JS变量userCount那么你可以使用该JS变量进行检查并输出错误信息(如有必要)

@functions{ 
   public int GetUserCount() {
     string regusername = Request.Form["regusername"].ToString();
     if(!regusername.IsEmpty())
      {
        var db = Database.Open("myshop");
        int usercount = db.QueryValue("select count(*) from webusers where username='@0'",regusername);
        db.Close();
        return usercount;
      }
      return 0;
   }
}

function RegUsernameLeave()
{
    var userCount = @GetUserCount();

   if (userCount > 0)
   document.getElementById("msg").innerHTML="Username already exists";

}
相关问题