C# javascript中未触发按钮事件
我添加了一个jquery模式弹出窗口来保存特定设备的上传文件。模式弹出,取消按钮工作,但我不知道如何让保存按钮触发onclick事件 这就是我所做的:C# javascript中未触发按钮事件,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我添加了一个jquery模式弹出窗口来保存特定设备的上传文件。模式弹出,取消按钮工作,但我不知道如何让保存按钮触发onclick事件 这就是我所做的: $(function () { $("#dialogCustUploads").dialog("destroy"); $("#dialogCustUploads").dialog({ title: "Upload Files", autoOpen: fals
$(function () {
$("#dialogCustUploads").dialog("destroy");
$("#dialogCustUploads").dialog({
title: "Upload Files",
autoOpen: false,
modal: true,
resizable: false,
width: 'auto',
buttons: {
Save: function () {
$(document.getElementById('<%=btnSave.ClientID %>')).click();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
});
function showCustUploads() {
$(function () {
$("#dialogCustUploads").dialog("open");
});
$(".dialogCustUploads").parent().appendTo($("form:first"));
}
<div id="dialogCustUploads" style="display: none">
<table style="width:100%;">
<tr>
<td class="auto-style1">
<asp:Label ID="Label16" runat="server" Text="Client"></asp:Label>
</td>
<td>
<asp:Label ID="lblClientUploadName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label19" runat="server" Text="Certificate no" ></asp:Label>
</td>
<td>
<asp:TextBox ID="txtCertificateNo" runat="server" Width="410px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label14" runat="server" Text="Upload Option"></asp:Label>
</td>
<td>
<asp:DropDownList ID="lstUploadOption" runat="server" AppendDataBoundItems="True" Width="410px"></asp:DropDownList>
</td>
</tr>
<tr>
<td class="auto-style1">
<asp:Label ID="Label18" runat="server" Text="File"></asp:Label>
</td>
<td>
<asp:FileUpload ID="fuPath" runat="server" Width="408px" />
<br />
<asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td class="auto-style1"></td>
<td>
<asp:Button ID="btnSave" style="display: none;" runat="server" Text="Save" OnClientClick="btnSave_Click" BackColor="White" />
</td>
</tr>
</table>
</div>
当窗体中断时,按钮显示如下:
<input type="submit" name="ctl00$MainContent$btnSave" value="Save" onclick="btnSave_Click;" id="btnSave" />
这是我试图从脚本调用的单击事件:
protected void btnSave_Click(object sender, EventArgs e)
{
// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (fuPath.HasFile)
{
// Get the size in bytes of the file to upload.
int fileSize = fuPath.PostedFile.ContentLength;
// Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
if (fileSize < 45497717)
{
// Call a helper method routine to save the file.
//SaveFile(fuPath.PostedFile);
SaveFile();
fuPath.Dispose();
lbljQMessage.Text = "Update successful";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "popUpMessage", "showCustUploads();", true);
//modalCustUploads.Show();
}
else
lblMessage.Text = "You did not specify a file to upload.";
}
}
应该是:
function showCustUploads() {
$(function () {
$("#dialogCustUploads").dialog("open");
});
}
$(function () {
$("#dialogCustUploads").dialog("destroy");
var dlgUploads = $("#dialogCustUploads").dialog({
title: "Upload Files",
autoOpen: false,
modal: true,
resizable: false,
width: 'auto',
buttons: {
Save: function () {
// __doPostBack("<%=btnSave.UniqueID %>", "");
$($get("<%=btnSave.UniqueID %>")).click();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
dlgUploads.parent().appendTo(jQuery("form:first"));
});
而不是这个:
function showCustUploads() {
$(function () {
$("#dialogCustUploads").dialog("open");
});
$(".dialogCustUploads").parent().appendTo($("form:first"));
}
$(function () {
$("#dialogCustUploads").dialog("destroy");
$("#dialogCustUploads").dialog({
title: "Upload Files",
autoOpen: false,
modal: true,
resizable: false,
width: 'auto',
buttons: {
Save: function () {
// __doPostBack("<%=btnSave.UniqueID %>", "");
$($get("<%=btnSave.UniqueID %>")).click();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
});
$(函数(){
$(“#dialogCustUploads”).dialog(“销毁”);
$(“#dialogCustUploads”).dialog({
标题:“上传文件”,
自动打开:错误,
莫代尔:是的,
可调整大小:false,
宽度:“自动”,
按钮:{
保存:函数(){
//doPostBack(“,”);
$($get(“”)。单击();
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
});
应该是:
function showCustUploads() {
$(function () {
$("#dialogCustUploads").dialog("open");
});
}
$(function () {
$("#dialogCustUploads").dialog("destroy");
var dlgUploads = $("#dialogCustUploads").dialog({
title: "Upload Files",
autoOpen: false,
modal: true,
resizable: false,
width: 'auto',
buttons: {
Save: function () {
// __doPostBack("<%=btnSave.UniqueID %>", "");
$($get("<%=btnSave.UniqueID %>")).click();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
dlgUploads.parent().appendTo(jQuery("form:first"));
});
$(函数(){
$(“#dialogCustUploads”).dialog(“销毁”);
var dlgUploads=$(“#dialogCustUploads”).dialog({
标题:“上传文件”,
自动打开:错误,
莫代尔:是的,
可调整大小:false,
宽度:“自动”,
按钮:{
保存:函数(){
//doPostBack(“,”);
$($get(“”)。单击();
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
dlgUploads.parent().appendTo(jQuery(“form:first”);
});
谢谢大家的帮助!!!谢谢你 试试这个
$('<%=btnSave.ClientID %>').click();
$('')。单击();
应该是
document.getElementById('<%=btnSave.ClientID %>').click();
document.getElementById(“”)。单击();
反而
$(document.getElementById('<%=btnSave.ClientID %>')).click();
$(document.getElementById(“”))。单击();
因为您使用的是javascript,顺便说一句,jQuery是javascript,但在$()
中包装将创建jQuery对象,您将两者结合起来。document.getElementById(“”)。单击();
document.getElementById('<%=btnSave.ClientID %>').click();
Or
$('#<%=btnSave.ClientID %>').click();
或
$('#')。单击();
您做错了:
$(document.getElementById('<%=btnSave.ClientID %>')).click();
在jquery中:
$('#btnSave').click();
或在javascript中:
document.getElementById('<%=btnSave.ClientID %>').click();
document.getElementById('btnSave').click();
试着使用
$("#btnSave").click();
$('#')。触发(“单击”)//确保使用“#”作为jQuery选择器的一部分
如果$(“”)
指的是按钮,您可以通过检查$(“”)来检查它。长度==1
尝试使用
$(“#”)点击()
并删除按钮的给定内联样式。
OnClientClick
指定要执行的客户端javascript函数,但看起来您正试图使用它来执行服务器端方法OnClick
将执行服务器端方法:
OnClick="btnSave_Click"
如果您试图实现以下目标:
在上面的代码中,我们使用Image按钮通过“OnClientClik”事件进行确认,并通过“OnClick”事件进行save方法的代码隐藏调用
在这种情况下,您不需要使用“SelectCustFiles\u Click”方法或“jquery模式”
如果出现任何问题,请告诉我仅使用jquery或javascript,jquery syntex将$('#')。单击()@user2042152:您能否确认使用简单的“浏览器确认弹出窗口”而不是使用“jquery模式弹出窗口”来请求保存文件的确认?那样的话,我有一个建议。让我知道。@user3240361,是的,我是。。。我以前使用过ajax control toolkit,但由于兼容性问题很多,我必须找到其他东西,只要它与IE 8兼容…@user2042152:检查下面的答案。您好,感谢您的帮助,这会触发事件,但它给我一个错误“Microsoft JScript运行时错误:'btnSave_Click'未定义”?从按钮上卸下OnClientClick。添加$('')。触发器(“单击”);在脚本内部。删除onclientclick并添加上述方法按钮似乎什么都没做…您好,感谢您的帮助,现在单击“保存”按钮会给我一个错误:“Microsoft JScript运行时错误:'btnSave_Click'未定义”。。。你知道吗?客户端点击按钮时发生的事件没有定义删除或添加btnSave_ClickThank的定义我得到它给我回发,但它给我一个完整的回发,在数据到达保存方法之前清除数据?我删除了内联样式,但它给我一个错误:“Microsoft JScript运行时错误:'btnSave_Click'未定义”尝试使用OnClick代替OnClientClick。它仍然没有执行任何操作,我尝试使用:\ doPostBack('btnSave','OnClick'));它关闭了对话框…但仍然没有到达单击事件…您可以共享服务器端和客户端代码以便更好地理解吗。?感谢它给我一个错误:“Microsoft JScript运行时错误:'btnSave_click'未定义”调用警报($('').length)时得到什么?您使用的是哪个版本的jQuery?长度返回为0,我使用以下两个脚本:您只需要一个,我使用第二个。我的最佳选择是使用Chrome开发工具-在Chrome中,只需右键单击按钮并在上下文菜单中说“Inspect element”。选中其中的按钮并将其与ey必须是相同的。嗨,当我检查它提供的元素时:我认为id确实匹配…当我删除OnClientClick并添加Click事件时,什么都没有发生,按钮没有返回任何内容…我可以多次单击按钮,但什么都没有发生…谢谢你的建议
$(document.getElementById('<%=btnSave.ClientID %>')).click();
$('#<%=btnSave.ClientID %>').click();
document.getElementById('<%=btnSave.ClientID %>').click();
<asp:Button ID="btnSave" style="display: none;" runat="server" Text="Save" OnClientClick="btnSave_Click" ClientIDMode="Static" BackColor="White" />
$('#btnSave').click();
document.getElementById('btnSave').click();
$("#btnSave").click();
$('#<%=btnSave.ClientID %>').trigger("click"); // Make sure you use '#' as part of your jQuery selector
OnClick="btnSave_Click"
<asp:TemplateField HeaderText="Upload">
<ItemTemplate>
<asp:ImageButton ID="CustUploadFiles" runat="server" Height="22" BorderStyle="None" BackColor="Transparent" ImageUrl="~/Images/UploadFilesTrans.png" OnClick="btnSave_Click" Width="22" OnClientClick="return confirm('Are you sure you want to Save?')" />
</ItemTemplate>
</asp:TemplateField>