我有一个页面动态添加图像按钮,我希望他们发送确认,当你点击它们(删除)。Javascript确认没有代码后面的代码
由于它们是动态的,我不能在.click事件中编写任何代码。
找到最好的方法吗?检查是否为true,然后将其作为参数发送给代码后面的代码中的删除函数?或者其他方式?
感谢
我有一个页面动态添加图像按钮,我希望他们发送确认,当你点击它们(删除)。Javascript确认没有代码后面的代码
由于它们是动态的,我不能在.click事件中编写任何代码。
找到最好的方法吗?检查是否为true,然后将其作为参数发送给代码后面的代码中的删除函数?或者其他方式?
感谢
如果您希望能够取消提交,请将OnClientClick
属性设置为字符串“Return”和函数名称。客户端脚本可以通过返回false
来取消提交。
查看图片按钮clientclick属性。
void Button1_Click(Object sender, EventArgs e)
Label1.Text = "Server click handler called.";
End Sub
动态生成的ImageButton应该有点像这样: 创建所有imagebuttons commman事件哈德勒和设置这些的ImageButton的id
的主键值。
检查Respond to Button Web Server Control Events in Client Script的详细信息:
您可以创建自定义的ImageButton用户控件,将提供有关click事件删除功能。在ItemRowCreated或GridView上,RowCreated事件为这些动态添加的控件分配事件驱动程序。
如果它们不在任何数据绑定控件中,那么在运行时简单地分配那些属性。
protected void Page_Init(object sender, EventArgs e)
{
ImageButton btn = new ImageButton();
btn.ID = "1";
btn.ImageUrl = "http://icons.iconarchive.com/icons/deleket/button/256/Button-Fast-Forward-icon.png";
btn.OnClientClick = "return confirm('Ready to submit.')";
btn.Click += new ImageClickEventHandler(btn_Click);
this.form1.Controls.Add(btn);
}
检查事件处理程序中的控件ID。
private void btn_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
Response.Write("<script>alert('Image button with id = " + btn.ID + "clicked');</script>");
}
然后perfom删除操作
这很容易做到与jQuery(一个JavaScript框架),即使想用纯JavaScript做的,你需要一个类添加到您的所有删除图像按钮,添加一个处理函数,
使用jQuery,只要使用此:
$(".deleteImageButton").bind("click", function() {
var res = confirm("Are you sure you want to delete?");
return res;
});
事件冒泡的DOM,即。他们将触发它发生的元素以及它所有的父项(直到文档节点本身)。这可以很容易地解决您的问题:只需将按钮处理程序附加到按钮的容器中即可。 jQuery的使它更容易通过它的委托功能做到这一点,这里的一些示例代码:
$('#buttons').delegate('.delete_control', 'click', function(e) {
e.preventDefault();
e.stopPropagation(); // maybe you don't need these 2, you can remove them if so
if (confirm('Are you sure you want to delete that element?')) {
// make an ajax request to delete the image. alternatively you can submit
// a hidden form, with the controlid in an input, but this is way simpler.
$.post('/url/to/delete/control/by/id/' + e.target.id, function() {
$(e.target).remove(); // to delete the button when the request is done.
});
}
});
而这里的展示了整个事情的工作一的jsfiddle页:http://jsfiddle.net/8d7D4/
哪有的HREF您的网址然后我打电话给jquery后面的代码? – Jimmy
这与你问的问题完全无关。我已经用一个例子更新了我的代码。 – deviousdodo
对象火.click
等功能“收集“,如果在此之后添加任何元素,则需要使用.delegate
或.bind
来使新元素也触发事件。
'live'已被弃用,它是一个糟糕的API。不要以此为例。而且,由于您复制了我的代码并仅更改了该代码,因此您可以在我的答案上添加评论,而不是发布其他答案。 – deviousdodo
唯一的问题是我无法将事件处理程序设置为btn.click,它不是按钮上的选项。 – Jimmy
让我知道如何/你在哪里你的网页上添加这些imagebuttons ..然后我可以建议在哪里做.. –
到目前为止,香港专业教育学院只加了一个,和它以同样的方式你做......在后面的代码。 ..对于迟到的回答抱歉,我的互联网出去了! – Jimmy