前台代码 <script type="text/javascript" language = "JavaScript">
function checkuser(){
var name = document.getElementById("txtLoginName").value;
if(name == "")
{
alert( "请填写管理员登录名!");
return;
}
var s = '<%= checkuser("'+name+'") %>';
if(s == "false")
{
alert( s +"___用户名已经存在!"+ name);
return;
}
if(s == "true")
{
alert(s +"___恭喜,该用户名可以使用!" + name);
return;
}
}
<a href="javascript:checkuser()">检测登陆名是否可用</a>后台方法被调用方法 public string checkuser(string name)
{
string bo = "bool";
int i = CheckUserName(name);
if (i > 0)
{
bo = "false";
}
else
{
bo = "true";
}
return bo ;
}CheckUserName为判断用户的数量 返回聚合函数
为什么不能用呢
我感觉每次都是true,到底是什么原因呢
请告诉帮忙给我改一改
function checkuser(){
var name = document.getElementById("txtLoginName").value;
if(name == "")
{
alert( "请填写管理员登录名!");
return;
}
var s = '<%= checkuser("'+name+'") %>';
if(s == "false")
{
alert( s +"___用户名已经存在!"+ name);
return;
}
if(s == "true")
{
alert(s +"___恭喜,该用户名可以使用!" + name);
return;
}
}
<a href="javascript:checkuser()">检测登陆名是否可用</a>后台方法被调用方法 public string checkuser(string name)
{
string bo = "bool";
int i = CheckUserName(name);
if (i > 0)
{
bo = "false";
}
else
{
bo = "true";
}
return bo ;
}CheckUserName为判断用户的数量 返回聚合函数
为什么不能用呢
我感觉每次都是true,到底是什么原因呢
请告诉帮忙给我改一改
你這樣寫的話不會每次都去調用后臺代碼的
只是在頁面初始化加載的時候才調用一次而已
这样的方式能调用后台cs的方法,不会吧.那AJAX不就很奇怪了.
var xmlHttp = false;
//----------------------------------------------------------检验用户名时候可以注册
function checkUserName()
{
// Check whether there's text in tbUserName
var tbUserName = document.getElementById('tbUserName');
var checkResult = document.getElementById("checkResult");
checkResult.innerHTML = "<img src='images/Web/ajax.gif' height='13px' width='13px'/>"
var b = document.getElementById("ImageButton_Regist");
if (tbUserName.value == "")
{
b.disabled = true;
checkResult.innerHTML = "请输入账号";
return;
}
else if (tbUserName.value.length < 3 && tbUserName.value.length > 0)
{
b.disabled = true;
checkResult = document.getElementById("checkResult");
checkResult.innerHTML = "你输入的账号长度太短";
return;
}
b.disabled = false; // Create XMLHttpRequest object
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
xmlHttp = false;
}
} if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
{
xmlHttp = new XMLHttpRequest();
}
// Build the URL to connect to
var url = "./AJAX/CheckUserNameService.aspx?User_Name=" + tbUserName.value; // Open a connection to the server
xmlHttp.open("GET", url, true); // Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = callBack_CheckUserName; // Send the request
xmlHttp.send(null);}function callBack_CheckUserName()
{
if (xmlHttp.readyState == 4)
{
var message;
var isValid = xmlHttp.responseText;
var checkResult = document.getElementById("checkResult");
if (isValid == "true")
{
message = "<img src='images/Web/checked.png' height='13px' width='13px' />";
}
else
{
var b = document.getElementById("ImageButton_Regist");
b.disabled = true;
message = "该账号已经注册过,请重新输入新的账号。";
}
checkResult.innerHTML = message;
}
}
CheckUserNameService.aspx<%@ Page Language="C#" %><%@ Import Namespace="System.Data.OleDb" %><script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
// get the candidate user name.
string candidateUserName = Request["User_Name"];
// validate
bool isValid = false;
DBClass db = new DBClass();
db.Conn.Open();
string str = "select count(*) from [tUser] where [User_Name]='" + candidateUserName + "'";
OleDbCommand Comm = new OleDbCommand(str, db.Conn);
int result = Convert.ToInt32(Comm.ExecuteScalar()); if (result<=0)
{
isValid = true;
}
db.Conn.Close(); // send out result
Response.Clear();
Response.Write(isValid ? "true" : "false");
Response.Flush(); }
</script>前台调用代码
<asp:TextBox ID="tbUserName" runat="server" onblur="checkUserName()" MaxLength="20"
BorderColor="Black" BorderWidth="1px"></asp:TextBox>
<span id="checkResult" style="font-size: 9pt; font-family: 宋体; color: red;"></span>
{
var s = '<%= isDelete() %>';
if(s == "true")
{
if(confirm("删除后不能恢复,确认删除?"))
{
window.location = divertURL
}
}
else
{
alert("对不起!您无操作此功能的权限,如有需要请您联系人事部为您开通!");
}
}
<a href="javascript:getBool('delPost.aspx?id=<%# Eval("funpID") %>')">删除</a>为什么我这种就可以用呢 ?
1.在工程里添加引用:Ajax.dll
2.在webconfig里加入:
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
</httpHandlers>
3.在你这页的CS的Page_Load事件里加入
Ajax.Utility.RegisterTypeForAjax(typeof(Common));------Commmon为你那个CS方法所在的类
然后你在Common类里写你要在前台调用的那方法
4.然后在JS里直接调用方法:
例如:function getcity(p)
{
var obj = document.all("cityddl");
obj.length = 0;
obj.options.add(new Option("未知","未知"));
if (p != "-1")
{
var ds = Common.GetCitylist(p).value;--------------------这个方法就是CS里写的
if(typeof(ds) == "object" && ds != null)
{
for(var i=0; i<ds.Rows.length; i++)
obj.options.add(new Option(ds.Rows[i].city,ds.Rows[i].code));
}
}
}
var s = '<%= checkuser("'+name+'") %>';
看下这里的值
在IE选项高级里启用脚本调试
using System.Web.Services;
[WebMethod]
public static string CheckValue(string value1)
{
//處理過程
}
前臺加上
<script type="text/javascript">
//JavaScript調用.Net后臺
function JsCallCSharp()
{
PageMethods.GetString(form1.TextBox1.value, onGetStringed);
}
function onGetStringed(result)
{
alert(result)
}
</script>
<script type="text/javascript">
//JavaScript調用.Net后臺
function JsCallCSharp()
{
PageMethods.CheckValue(form1.TextBox1.value, onGetStringed);
}
function onGetStringed(result)
{
alert(result)
}
</script>
using System.Web.Services;
[WebMethod]
public string checkuser(string name)
{
string bo = "bool";
int i = CheckUserName(name);
if (i > 0)
{
bo = "false";
}
else
{
bo = "true";
}
return bo ;
}前臺
<script type="text/javascript">
//JavaScript調用.Net后臺
function checkuser()
{
PageMethods.checkuser("name", ReturnMethod);
}
function ReturnMethod(result)
{
alert(result);
}
</script>
这个name是在客户端的,<%%>是运行在服务器端的。只能用AJAX。如果不熟,就用Jquery,这个简单点。