表单的提交是依据用户是否点下submit按钮或其它方式法发onsubmit事件来提交的,如果onsubmit事件的绑定函数的返回逻辑值为false则不提交,其它则提交,void值也会被提交,你这里建议写作
<form ... onsubmit="CheckRegister(this)"..把form对象直接传给CheckRegister方法里,可以省点事
然后CheckRegister方法里这么样写
function CheckRegister(frm)
{
if(frm.txtUserName.length == 0)
{
return alert("请输入用户名!"),false;//此句表示先弹出对话框后返回false,逗号运算符,从左向右运行,取右边的值,而alert运行时会阻塞页面内的脚本运行.
}
}
<form ... onsubmit="CheckRegister(this)"..把form对象直接传给CheckRegister方法里,可以省点事
然后CheckRegister方法里这么样写
function CheckRegister(frm)
{
if(frm.txtUserName.length == 0)
{
return alert("请输入用户名!"),false;//此句表示先弹出对话框后返回false,逗号运算符,从左向右运行,取右边的值,而alert运行时会阻塞页面内的脚本运行.
}
}
解决方案 »
- 原型继承 继承顺序问题
- jquery ajax问题
- 請問大俠如何控制 textbox 中只能輸入繁體中文而不能輸入簡體中文﹖謝謝﹗
- 请问offsetParent是根据什么来判定的
- 紧急求助,字符串拆分的问题
- parseFloat(20)-parseFloat(20.6)=0.600000000000014怎么回事?
- 找一个选择输入窗体的javascript界面代码
- 求助:求一个树,三层即可(详见内文)
- 点击一个图片,然后移动到本页面的一个textarea,要如何做?
- Extjs4中itemdblclick与cellclick事件的问题
- 如何屏蔽所有IE操作
- 关于document.write('<scr' + 'ipt的问题
function CheckRegister(frm)
{
if (frm.txtUserName.value.length == 0) return alert("!!!"),false;
}
</script>
<FORM METHOD=POST ACTION="aaa" onsubmit="return CheckRegister(this)">
<input type="text" name="txtUserName" />
<input type="submit" value="ok"/>
</FORM>汗....大意了,我忘了写return了,这里这么样写onsubmit="return CheckRegister(this)"
并且我还想让这个文本框得到焦点.
代码如下:
<%@ Page language="c#" Codebehind="Register.aspx.cs" AutoEventWireup="false" Inherits="Registration.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Register</title>
<meta content="Microsoft Visual Studio .NET 7.1" name=GENERATOR>
<meta content=C# name=CODE_LANGUAGE>
<meta content=JavaScript name=vs_defaultClientScript>
<meta content=http://schemas.microsoft.com/intellisense/ie5 name=vs_targetSchema>
<script language=javascript>
function CheckRegister()
{
var username=document.Form1.txtUsername;
var pass1=document.Form1.txtPassword;
var pass2=document.Form1.txtPwd;
var name=document.Form1.txtName;
var email=document.Form1.txtEmail;
var addr=document.Form1.txtAddress;
var handno=document.Form1.txtHandsetNo;
if(username.value=="")
{
alert("用户名不能为空!");
username.focus();
return false;
}
if(name.value=="")
{
alert("联系人不能为空!");
name.focus();
return false;
}
if(handno.length==0)
{
alert("常用号码不能为空!");
handno.focus();
return false;
}
if(addr.value=="")
{
alert("地址不能为空!");
addr.focus();
return false;
}
if(email.length==0)
{
alert("Email不能为空!");
email.focus();
return false;
}
if(email.indexOf("@",0)==-1)
{
alert("Email格式不正确!\n必须包含@符号!");
email.focus();
return false;
}
if(email.indexOf(".",0)==-1)
{
alert("Email格式不正确!\n必须包含.符号!");
email.focus();
return false;
}
if(pass1==pass2)
{
if(pass1.length!=0)
{
return true;
}
else
{
alert("维护密码不能为空!");
pass1.focus();
return false;
}
}
else
{
alert("确认密码必须与维护密码相同!");
pass2.focus();
return false;
}
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id=Form1 method=post runat="server">
<FONT face=宋体>
<asp:label id=lblUserName style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 56px" runat="server" Width="99px">用户名:</asp:label>
<asp:label id=lblPassword style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 96px" runat="server" Width="99px">维护密码:</asp:label>
<asp:label id=lblName style="Z-INDEX: 103; LEFT: 24px; POSITION: absolute; TOP: 136px" runat="server" Width="99px">联系人:</asp:label>
<asp:label id=lblQQNumber style="Z-INDEX: 104; LEFT: 24px; POSITION: absolute; TOP: 184px" runat="server" Width="99px">QQ号码:</asp:label>
<asp:label id=lblPostalcode style="Z-INDEX: 105; LEFT: 24px; POSITION: absolute; TOP: 224px" runat="server" Width="99px">邮政编码:</asp:label>
<asp:label id=lblEmail style="Z-INDEX: 106; LEFT: 360px; POSITION: absolute; TOP: 48px" runat="server" Width="72px">Email:</asp:label>
<asp:label id=lblPwd style="Z-INDEX: 107; LEFT: 360px; POSITION: absolute; TOP: 96px" runat="server" Width="72px">确认密码:</asp:label>
<asp:label id=lblHandsetNo style="Z-INDEX: 108; LEFT: 360px; POSITION: absolute; TOP: 144px" runat="server" Width="72px">常用号码:</asp:label>
<asp:label id=lblHandsetNumber style="Z-INDEX: 109; LEFT: 360px; POSITION: absolute; TOP: 184px" runat="server" Width="72px">手机号码:</asp:label>
<asp:label id=lblAddress style="Z-INDEX: 110; LEFT: 360px; POSITION: absolute; TOP: 232px" runat="server" Width="72px">地址:</asp:label>
<asp:textbox id=txtUsername style="Z-INDEX: 111; LEFT: 128px; POSITION: absolute; TOP: 48px" runat="server" Width="181px"></asp:textbox>
<asp:textbox id=txtPassword style="Z-INDEX: 112; LEFT: 128px; POSITION: absolute; TOP: 96px" runat="server" Width="181px"></asp:textbox>
<asp:textbox id=txtName style="Z-INDEX: 113; LEFT: 128px; POSITION: absolute; TOP: 136px" runat="server" Width="181px"></asp:textbox>
<asp:textbox id=txtQQNumber style="Z-INDEX: 114; LEFT: 128px; POSITION: absolute; TOP: 184px" runat="server" Width="181px"></asp:textbox>
<asp:textbox id=txtPostalcode style="Z-INDEX: 115; LEFT: 128px; POSITION: absolute; TOP: 224px" runat="server" Width="181px"></asp:textbox>
<asp:textbox id=txtEmail style="Z-INDEX: 116; LEFT: 440px; POSITION: absolute; TOP: 48px" runat="server"></asp:textbox>
<asp:textbox id=txtPwd style="Z-INDEX: 117; LEFT: 440px; POSITION: absolute; TOP: 96px" runat="server"></asp:textbox>
<asp:textbox onkeypress="if(event.keyCode < 49 || event.keyCode > 58) event.returnValue = false;" id=txtHandsetNo style="Z-INDEX: 118; LEFT: 440px; POSITION: absolute; TOP: 136px" runat="server"></asp:textbox>
<asp:textbox id=txtHandsetNumber style="Z-INDEX: 119; LEFT: 440px; POSITION: absolute; TOP: 184px" runat="server"></asp:textbox>
<asp:textbox id=txtAddress style="Z-INDEX: 120; LEFT: 440px; POSITION: absolute; TOP: 224px" runat="server" Width="256px"></asp:textbox>
<asp:button id=btnSubmit style="Z-INDEX: 121; LEFT: 288px; POSITION: absolute; TOP: 272px" runat="server" Text="提交并注册"></asp:button>
<asp:label id=Label11 style="Z-INDEX: 122; LEFT: 312px; POSITION: absolute; TOP: 56px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label12 style="Z-INDEX: 123; LEFT: 312px; POSITION: absolute; TOP: 104px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label13 style="Z-INDEX: 124; LEFT: 312px; POSITION: absolute; TOP: 144px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label16 style="Z-INDEX: 127; LEFT: 600px; POSITION: absolute; TOP: 56px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label17 style="Z-INDEX: 128; LEFT: 600px; POSITION: absolute; TOP: 104px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label18 style="Z-INDEX: 129; LEFT: 600px; POSITION: absolute; TOP: 144px" runat="server" ForeColor="Red">*</asp:label>
<asp:label id=Label20 style="Z-INDEX: 131; LEFT: 704px; POSITION: absolute; TOP: 232px" runat="server" ForeColor="Red">*</asp:label></FONT></FORM>
</body>
</HTML>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace Registration
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtUsername;
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.TextBox txtName;
protected System.Web.UI.WebControls.TextBox txtQQNumber;
protected System.Web.UI.WebControls.TextBox txtPostalcode;
protected System.Web.UI.WebControls.TextBox txtEmail;
protected System.Web.UI.WebControls.TextBox txtPwd;
protected System.Web.UI.WebControls.TextBox txtHandsetNo;
protected System.Web.UI.WebControls.TextBox txtHandsetNumber;
protected System.Web.UI.WebControls.TextBox txtAddress;
protected System.Web.UI.WebControls.Button btnSubmit;
protected System.Web.UI.WebControls.Label Label11;
protected System.Web.UI.WebControls.Label Label12;
protected System.Web.UI.WebControls.Label Label13;
protected System.Web.UI.WebControls.Label Label16;
protected System.Web.UI.WebControls.Label Label17;
protected System.Web.UI.WebControls.Label Label18;
protected System.Web.UI.WebControls.Label lblUserName;
protected System.Web.UI.WebControls.Label lblPassword;
protected System.Web.UI.WebControls.Label lblName;
protected System.Web.UI.WebControls.Label lblQQNumber;
protected System.Web.UI.WebControls.Label lblPostalcode;
protected System.Web.UI.WebControls.Label lblEmail;
protected System.Web.UI.WebControls.Label lblPwd;
protected System.Web.UI.WebControls.Label lblHandsetNo;
protected System.Web.UI.WebControls.Label lblHandsetNumber;
protected System.Web.UI.WebControls.Label lblAddress;
protected System.Web.UI.WebControls.Label Label20;
private void Page_Load(object sender, System.EventArgs e)
{
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnSubmit.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
this.btnSubmit.Attributes.Add("onclick","return CheckRegiter();");
string username=Convert.ToString (this.txtUsername.Text.Trim());
string pwd=Convert.ToString(this.txtPassword.Text.Trim ());
string email=Convert.ToString(this.txtEmail.Text.Trim ());
string name=Convert.ToString(this.txtName.Text.Trim ());
int handno=Convert.ToInt32(this.txtHandsetNo.Text.Trim ());
int qqno=Convert.ToInt32(this.txtQQNumber.Text.Trim ());
int handnumber=Convert.ToInt32 (this.txtHandsetNumber.Text.Trim());
int post=Convert.ToInt32(this.txtPostalcode.Text.Trim ());
string addr=Convert.ToString(this.txtAddress.Text.Trim ());
这下面的是我调用另一个方法往数据库插入数据:
DataAccess da=new DataAccess();
da.getRegister (username,pwd,email,name,handno,qqno,handnumber,post,addr);
}
}
}
var pass1=document.Form1.lblPassword;
var pass2=document.Form1.lblPwd;
var name=document.Form1.lblName;
var email=document.Form1.lblEmail;
var addr=document.Form1.lblAddress;
var handno=document.Form1.lblHandsetNo;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function CheckRegister(frm)
{
if(frm.txtUserName.value.length == 0)
{
return alert( "请输入用户名! "),false;
//此句表示先弹出对话框后返回false,逗号运算符,从左向右运行,取右边的值,而alert运行时会阻塞页面内的脚本运行.
}
if(frm.txtName.value.length==0)
{
return alert("联系人不能为空!");
document.myform.txtName.focus();
}
if(frm.txtHandsetNo.value.length==0)
{
return alert("常用号码不能为空!");
document.myform.txtHandsetNo.focus();
}
if(frm.txtAddress.value.length==0)
{
return alert("地址不能为空!");
document.myform.txtAddress.focus();
}
if(frm.txtEmail.value.length==0)
{
return alert("Email不能为空!");
document.myform.txtEmail.focus();
}
if(frm.txtEmail.value.indexOf("@",0)==-1)
{
return alert("Email格式不正确!\n必须包含@符号!");
document.myform.txtEmail.focus();
}
if(frm.txtEmail.value.indexOf(".",0)==-1)
{
return alert("Email格式不正确!\n必须包含.符号!");
document.myform.txtEmail.focus();
}
if(frm.txtPassword.value.length==frm.txtPwd.value.length)
{
if(frm.txtPassword.value.length!=0)
{
return alert("!!!!!!!!!!!!!!!!!!!");
}
else
{
return alert("维护密码不能为空!");
document.myform.txtPassword.focus();
}
}
else
{
return alert("确认密码必须与维护密码相同!");
document.myform.txtPwd.focus();
}
}
</script>
</HEAD>
<body>
<form name="myform" method="post" onSubmit="return CheckRegister(this)" action="">
<table width="597" height="219" border="1" align="center">
<tr>
<td width="79">用户名:</td>
<td width="158"><input id="txtUserName" name="txtUserName" type="text" size="13">
*</td>
<td width="85">Email:</td>
<td width="247"><input name="txtEmail" id="txtEmail" type="text" size="18">
*</td>
</tr>
<tr>
<td>维护密码:</td>
<td><input name="txtPassword" type="text" size="18">
*</td>
<td>确认密码:</td>
<td><input name="txtPwd" type="text" size="18">
*</td>
</tr>
<tr>
<td>联系人:</td>
<td><input name="txtName" type="text" size="18">
*</td>
<td>常用号码:</td>
<td><input name="txtHandsetNo" type="text" size="18">
*</td>
</tr>
<tr>
<td>QQ号码:</td>
<td><input name="txtQQNumber" type="text" size="18"></td>
<td>手机号码:</td>
<td><input name="txtHandsetNumber" type="text" size="18"></td>
</tr>
<tr>
<td>邮政编码:</td>
<td><input name="txtPostalcode" type="text" size="18"></td>
<td>联系地址:</td>
<td><input name="txtAddress" type="text" size="25">
*</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="btnSubmit" value="提交并注册" id=Submit1 runat="server"></td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
</body>
</HTML>
怎么样才能做到呢???谢谢你帮助我!!!
document.myform.txtEmail.focus();改为
return alert(),document.myform.txtEmail.focus(),false;
因为你的return 在focus之前,后面的代码是不会被执行的.
或者在已知控件id的情况下直接用focus
document.myform.txtUsername 为空不是对象!
什么意思???
"<script language=javascript> return alert('用户名不存在或是密码错误!'),document.Form1.txtUserName.focus(),document.Form1.txtUserName.select(),false;</script>");
上面的这个代码我是让它在服务器端运行客户端的javascript代码!可有错误!并且没有提示;
怎么才能让它在正确运行呢???高手请帮帮忙!!!!
我在asp页面的代码上用Struct传参数,我定义了9个参数全部用string 型的.我的数据库里有9个字段其中3个字段是int型的为空.我想在页面上不输入值,已要这个插入语句能执行成功???可问题出来了,如下:
这是asp页面的:
private void btnSubmit_Click(object sender, System.EventArgs e)
{
string username=this.txtUsername.Text.Trim();
string pwd=this.txtPwd.Text.Trim();
string email=this.txtEmail.Text.Trim();
string name=this.txtName.Text.Trim();
string oftenno=this.txtHandsetNo.Text.Trim();
string qqno=this.txtQQNumber.Text.Trim();
string handsetno=this.txtHandsetNumber.Text.Trim();
string postalcode=this.txtPostalcode.Text.Trim();
string address=this.txtAddress.Text.Trim();
DataAccess da=new DataAccess();
da.getRegister(username,pwd,email,name,oftenno,qqno,handsetno,postalcode,address);
}
}这下面的是DataAccess类中getRegister方法代码:
public class DataAccess
{
private SqlConnection conn;
private SqlCommand cmd; public DataAccess()
{
Connect cn=new Connect();
this.conn=cn.getConnect();
}
//public bool getRegister(RegisterParamter parm)
public bool getRegister(string username,string pwd,string email,string name,string oftenno,string qqno,string handno,string post,string addr)
{
this.conn.Open();
string strsql="insert into UserName,PassWord,Email,ContactName,OftenNo,QQNo,HandsetNo,Postalcode,Address UserInfo values ('"+
username+"','"+pwd+"','"+email+"','"+name+"',"+oftenno+","+qqno+","+handno+","+post+",'"+addr+"')";
// string strsql="insert into UserInfo values ('"+parm._username+"','"+parm._pwd+"','"+parm._email+"','"+parm._name+"',"+
// parm._oftenno+","+parm._qqno+","+parm._handsetno+","+parm._postalcode+",'"+parm._address+"')";
try
{
this.cmd=new SqlCommand(strsql,this.conn);
this.cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
throw new Exception(ex.ToString());
}
finally
{
this.conn.Close();
}
return true;
}
}
上面的代码执行到this.cmd.ExecuteNonQuery()的时候就提示错误了,如下:
System.Data.SqlClient.SqlException: 第 1 行: ',' 附近有语法错误。 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Registration.DataAccess.getRegister(String username, String pwd, String email, String name, String oftenno, String qqno, String handno, String post, String addr) in e:\注册页面\registration\dataaccess.cs:line 44