我有一个常规的asp:按钮。我正在.net 3.5中工作。我已经尝试使用OnClientClick属性向按钮添加js确认以及添加代码隐藏,结果是相同的。无论用户点击确认弹出式窗体都不会提交?javascript确认asp.net按钮从不提交?
BtnDeleteSelected.Attributes.Add(“onclick”,“return confirm('确定要删除吗?');”);
确认对话框出现,如果我选择“确定”它仍然不提交..任何想法?谢谢。
我有一个常规的asp:按钮。我正在.net 3.5中工作。我已经尝试使用OnClientClick属性向按钮添加js确认以及添加代码隐藏,结果是相同的。无论用户点击确认弹出式窗体都不会提交?javascript确认asp.net按钮从不提交?
BtnDeleteSelected.Attributes.Add(“onclick”,“return confirm('确定要删除吗?');”);
确认对话框出现,如果我选择“确定”它仍然不提交..任何想法?谢谢。
那是因为你不应该在所有情况下返回。如果您查看网页的源代码,并查找按钮标记,你可能会看到这个...
onclick="return confirm('Ok?'); __doPostback();"
的__doPostBack调用由在某些情况下,ASP.NET框架自动插入。既然您立即返回,无论confirm
的结果如何,回发都不会触发。最终的解决方案是不设置onclick属性,而是使用unobtrusive approach。但是,如果有紧迫的理由来控制这种对通过的onclick服务器端,您可以使用一个简单if
声明,只有当他们按“取消”返回......
string js = "if(!confirm('Are you sure you want to delete?')) return false;";
BtnDeleteSelected.Attributes.Add("onclick", js);
如果验证通过,您是否必须返回TRUE?意思是,如果confirm()返回false,我认为表单不会提交。
从我的理解上面是所有需要的..点击确定返回true – rodrick 2010-09-16 20:35:07
请尝试调用doPostBack功能;)
我的意思是:
BtnDeleteSelected.Attributes.Add("onclick", "CheckConfirm();");
<script language="javascript">
function CheckConfirm()
{
if (confirm('Are you sure you want to delete?'))
__doPostBack('BtnDeleteSelected','');
else
return false;
return true;
}
</script>
希望帮助,
我有这个问题了。我用添加客户端的JavaScript在这样的OnItemCreated
代码一个DataGrid的:
myTableCell = e.Item.Cells(iDeleteColumnNumber) 'Delete Button Column
myDeleteButton = myTableCell.Controls(1)
If myDeleteButton.UniqueID = "lbtnDelete" Then
myDeleteButton.Attributes.Add("onclick", "if(!confirm('OK to Delete?'))return false;")
End If
出于某种原因,没有工作。然后我搬到了JavaScript来的<asp:linkbutton>
在这样的设计视图:
<asp:LinkButton id="lbtnDelete" runat="server" CssClass="link-text" Text="<img border=0 src=../images/icons/icon-delete.gif alt=Delete>"
CommandName="Delete" CausesValidation="false" OnClientClick="if(!confirm('OK to Delete?'))return false;"></asp:LinkButton>
这为我工作。
非常感谢!非常有意义。唯一迫切的需要可能是混杂着懒惰的坏习惯..我应该克服的事情我知道!再次感谢。 – rodrick 2010-09-16 20:47:54