我的Button1_click是服务器端代码,当按下按钮时,数据被提交到数据库中。我的SubmitForm()是客户端代码。当我按下名为button1的按钮时,如何让两者都工作? (我的提交按钮)。下面的代码仅在按下按钮时触发Onclick,OnClientClick不会触发。
<asp:Button ID="Button1" runat="server" Onclick = "Button1_Click"
OnClientClick = "javascript:SubmitForm();return false"
Text="Submit" Width="98px"
/>
这是我的提交表单代码
function SubmitForm() {
if (document.getElementById("hawbtxt").value == "") {
alert("Please enter the HAWB (B/L)!");
return false;
}
if (document.getElementById("invrefpotxt").value == "") {
alert("Please enter the INV/REF/PO!");
return false;
}
if (document.getElementById("hppartnumtxt").value == "") {
alert("Please enter the HP PART NUM!");
return false;
}
if (document.getElementById("iecpartnumtxt").value == "") {
alert("Please enter the IEC PART NUM!");
return false;
}
if (document.getElementById("qtytxt").value == "") {
alert("Please enter the QUANTITY!");
return false;
}
if (document.getElementById("bulkstxt").value == "") {
alert("Please enter the BULKS!");
return false;
}
if (document.getElementById("boxplttxt").value == "") {
alert("Please enter the BOX/PLT!");
return false;
}
if (document.getElementById("rcvddatetxt").value == "") {
alert("Please enter the DATE!");
return false;
}
if (document.getElementById("statustxt").value == "") {
alert("Please enter the STATUS!");
return false;
}
if (document.getElementById("carriertxt").value == "") {
alert("Please enter the CARRIER!");
return false;
}
if (document.getElementById("shippertxt").value == "") {
alert("Please enter the SHIPPER!");
return false;
}
//create coo_bto_test.bat
var sText, s;
var fso = new ActiveXObject("Scripting.FileSystemObject");
alert("called");
if (!fso.FileExists("C:\\COO_BTO_Test.bat")) {
s = fso.CreateTextFile("C:\\COO_BTO_Test.bat", true);
sText = "@echo off";
s.WriteLine(sText);
sText = ":Lbl";
s.WriteLine(sText);
sText = "ECHO \"^XA^MD0^PRB^JVY^LL1760^LH%XL%,%YL%^FS \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^FO66,08^BY2,2.0,32^BCN,N,N,N^SN%Sno0%,1,Y^FS \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^FO66,48^AF,8,8^SN%Sno0%,1,Y^FS \">> COO.TXT";
s.WriteLine(sText);
sText = ":END";
s.WriteLine(sText);
sText = "ECHO \"^PQ1 \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^XZ \">> COO.TXT";
s.WriteLine(sText);
sText = "REM MODE COM1 9600"
s.WriteLine(sText);
sText = "REM TYPE COO.TXT > COM1"
s.WriteLine(sText);
sText = "TYPE COO.TXT > LPT1"
s.WriteLine(sText);
}
}
function WriteToFile(sText) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\PRT_Test.bat", true);
s.WriteLine(sText);
s.Close();
}
这是我的button1_click代码
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("insert into John_IEP_Crossing_Dock_Shipment values('" + generateidtxt.Text + "','" + hawbtxt.Text + "','" + invrefpotxt.Text + "','" + hppartnumtxt.Text + "','" + iecpartnumtxt.Text + "','" + qtytxt.Text + "','" + bulkstxt.Text + "','" + boxplttxt.Text + "','" + rcvddatetxt.Text + "','" + statustxt.Text + "','" + carriertxt.Text + "','" + shippertxt.Text + "')", con);
cmd.ExecuteNonQuery();
con.Close();
generateidtxt.Text = "";
hawbtxt.Text = "";
invrefpotxt.Text = "";
hppartnumtxt.Text = "";
iecpartnumtxt.Text = "";
qtytxt.Text = "";
bulkstxt.Text = "";
boxplttxt.Text = "";
rcvddatetxt.Text = "";
statustxt.Text = "";
carriertxt.Text = "";
shippertxt.Text = "";
con.Dispose();
}
答案 0 :(得分:0)
OnClientClick
删除 返回false
OnClientClick = "javascript:SubmitForm()"
因为您从客户端点击返回false,所以服务器事件不会触发
如果从sumitform返回布尔值,则可以执行以下操作
OnClientClick="javascript: return SubmitForm();"
如果从true
方法返回SubmitForm
,则服务器事件也会触发。
你只从你的SubmitForm
方法返回false,如果所有必需的输入都在表单中,你可以返回true
答案 1 :(得分:0)
请试试这个:
<asp:Button ID="Button1" runat="server" Onclick = "Button1_Click"
OnClientClick = "javascript:SubmitForm();"
Text="Submit" Width="98px"
/>
修改强>
function SubmitForm() {
if (document.getElementById("hawbtxt").value == "") {
alert("Please enter the HAWB (B/L)!");
return false;
}
if (document.getElementById("invrefpotxt").value == "") {
alert("Please enter the INV/REF/PO!");
return false;
}
if (document.getElementById("hppartnumtxt").value == "") {
alert("Please enter the HP PART NUM!");
return false;
}
if (document.getElementById("iecpartnumtxt").value == "") {
alert("Please enter the IEC PART NUM!");
return false;
}
if (document.getElementById("qtytxt").value == "") {
alert("Please enter the QUANTITY!");
return false;
}
if (document.getElementById("bulkstxt").value == "") {
alert("Please enter the BULKS!");
return false;
}
if (document.getElementById("boxplttxt").value == "") {
alert("Please enter the BOX/PLT!");
return false;
}
if (document.getElementById("rcvddatetxt").value == "") {
alert("Please enter the DATE!");
return false;
}
if (document.getElementById("statustxt").value == "") {
alert("Please enter the STATUS!");
return false;
}
if (document.getElementById("carriertxt").value == "") {
alert("Please enter the CARRIER!");
return false;
}
if (document.getElementById("shippertxt").value == "") {
alert("Please enter the SHIPPER!");
return false;
}
//create coo_bto_test.bat
var sText, s;
var fso = new ActiveXObject("Scripting.FileSystemObject");
alert("called");
if (!fso.FileExists("C:\\COO_BTO_Test.bat")) {
s = fso.CreateTextFile("C:\\COO_BTO_Test.bat", true);
sText = "@echo off";
s.WriteLine(sText);
sText = ":Lbl";
s.WriteLine(sText);
sText = "ECHO \"^XA^MD0^PRB^JVY^LL1760^LH%XL%,%YL%^FS \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^FO66,08^BY2,2.0,32^BCN,N,N,N^SN%Sno0%,1,Y^FS \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^FO66,48^AF,8,8^SN%Sno0%,1,Y^FS \">> COO.TXT";
s.WriteLine(sText);
sText = ":END";
s.WriteLine(sText);
sText = "ECHO \"^PQ1 \">> COO.TXT";
s.WriteLine(sText);
sText = "ECHO \"^XZ \">> COO.TXT";
s.WriteLine(sText);
sText = "REM MODE COM1 9600"
s.WriteLine(sText);
sText = "REM TYPE COO.TXT > COM1"
s.WriteLine(sText);
sText = "TYPE COO.TXT > LPT1"
s.WriteLine(sText);
}
return true;
}
答案 2 :(得分:0)
从您的javascript函数中删除return false
。你会得到它。
<强>供参考:强>
不会提交带有return false
表单的:
从JavaScript事件中返回false 通常会取消“默认”行为 - 在链接的情况下,它会告诉浏览器不要关注该链接。