0

我必须解决分配给我的一些代码中的问题,问题是在声明中遵循此代码page.init else

Me.SaveChangesButton.Attributes.Add("OnClick", 
    "if (!confirm('Are you sure?')){
        return false;
     } else {
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
     }
")

覆盖此代码:

Protected Sub SaveChangesButton_Click(ByVal sender As Object, ByVal e As 
System.EventArgs) Handles SaveChangesButton.Click

问题[编辑]

  1. 如何绑定confirm()到按钮以使其不会覆盖我的handler功能?
  2. 在代码中的哪个位置绑定它是最佳实践?
  3. 如果我删除第二部分else {document.getElementById('SaveChangesButton').disabled = true; document.getElementById('rejectButton').disabled = true;}它可以正常工作,但是我应该如何编写它以便它继续执行SaveChangesButton_Click,因为我知道只有第二部分覆盖处理程序?
  4. 如何执行这两行 document.getElementById('SaveChangesButton').disabled = true; document.getElementById('rejectButton').disabled = true; 并仍然执行 SaveChangesButton_Click 处理程序而不覆盖它?
4

1 回答 1

2

1)您应该使用OnClientClick

Me.SaveChangesButton.OnClientClick = @"
    if (!confirm('Are you sure?')) {
        return false;
    } else {
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
    }"

2)如果你在中绑定SaveChangesButton_ClickPage.Init我也会设置OnClientClick

3,4)OnClientClick在服务器端OnClick(当然)之前的火灾(有点)。这使您在触发OnClick. 并且OnClick不会在禁用的按钮上触发。该怎么办?延迟禁用您的按钮

Me.SaveChangesButton.OnClientClick = @"
if (!confirm('Are you sure?')) {
    return false;
} else {
    setTimeout(function(){
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
    }, 100);
}"

这实际上使您的问题与此问题重复...

于 2013-02-02T12:29:23.867 回答