我正在尝试验证所有文本框,以确保在允许用户继续之前它们都已填满。我有两个按钮。第一个按钮发送到javascipt,进行验证,第二个按钮发送到vb.net上传文件并将详细信息保存到数据库中。如果我手动点击它们,每个按钮都能正常工作。问题是,我不能让他们一起工作。 (IE。按第一个按钮启动javascript检查,如果成功,调用按钮2启动vb.net脚本添加到数据库并重定向。)
这是验证脚本(在javascript中)
function fnCheck() {
if ((document.getElementById("price").value).length > 0) {
var r = confirm("Are you sure the details are correct?");
if (r == true) {
document.getElementById("Submit1");
}
else {
x = "You pressed Cancel!";
}
}
}
这是我的vb.net文本框+代码的示例(不使用代码隐藏)
<script runat="server">
Sub SubmitButton_Click(Source As Object, e As EventArgs)
Response.Redirect("../services.html")
End Sub
</script>
<asp:TextBox ID="price" runat="server" CausesValidation="true"></asp:TextBox>
<input id="Submit1" runat="Server" onserverclick="SubmitButton_Click"
type="submit" value="Upload Files" />
<asp:Button ID="Button5" runat="server" Text="1"
OnClientClick="javascript:return fnCheck()"/>
请帮忙。谢谢!
答案 0 :(得分:1)
虽然我不熟悉vb.net精神,但如果您尝试模拟<input>
元素上的点击事件,请尝试以下操作:
将输入类型更改为按钮:
<input id="Submit1" runat="Server" onserverclick="SubmitButton_Click"
type="button" value="Upload Files" />
在按钮元素上转发click()
方法:
function fnCheck() {
if ((document.getElementById("price").value).length > 0) {
var r = confirm("Are you sure the details are correct?");
if (r == true) {
document.getElementById('Submit1').click();
}
else {
x = "You pressed Cancel!";
}
}
}
答案 1 :(得分:0)
如果您尝试进行回发,只需调用__doPostback:
function fnCheck() {
if ((document.getElementById("price").value).length > 0) {
var r = confirm("Are you sure the details are correct?");
if (r == true) {
__doPostBack("Submit1", "");
}
else {
x = "You pressed Cancel!";
}
}
}
答案 2 :(得分:0)
相当古老的问题,但仍然适用于任何其他人..
检查页面是否继承了母版页,如果是,则id&#34; Submit1&#34;按钮将在客户端更改为&#34; contentplaceholder__Submit1 &#34;。
如果您想阻止这种情况发生,请将此添加到您的提交按钮代码:
ClientIDMode="Static"