lubb: JavaScript Wer hat Postback ausgelöst

Beitrag lesen

Guten Moregn,

Die lösung kann sehr einfach sein!

die Dropdownlist kann mit der option onchange="needToConfirm = false;"

so muss ich nicht mehr prüfen, on die Dropdownlist die Postback ausgelöst hat.

<asp:DropDownList ID="ddlKostenstelle" runat="server" OnSelectedIndexChanged="KostenstelleChanged" AutoPostBack="true" onchange="needToConfirm = false;">  
           </asp:DropDownList>  
  
  
<script type="text/javascript">  
  var ids = new Array('ctl00_ContentPlaceHolderContent_tbSerienNr', 'ctl00_ContentPlaceHolderContent_tbRechnungsNr'  );  
  
  
  var values = new Array();  
  
  function populateArrays()  
  {  
  
    // assign the default values to the items in the values array  
    for (var i = 0; i < ids.length; i++)  
    {  
      var elem = document.getElementById(ids[i]);  
      if (elem)  
      {  
        if (elem.type == 'select-one')  
          values[i] = elem.options.selected;  
        else if( elem.type == 'text' || elem.type == 'textarea')  
          values[i] = elem.value;  
      }  
    }  
  
  }  
  
  var needToConfirm = true;  
  
  window.onbeforeunload   = confirmExit  
  
 function confirmExit()  
  {  
  
var test = window.form1.target;  
  
    if (needToConfirm)  
    {  
      populateArrays();  
  
      // check to see if any changes to the data entry fields have been made  
      for (var i = 0; i < values.length; i++)  
      {  
        var elem = document.getElementById(ids[i]);  
        if (elem)  
        {  
          if (elem.type == 'select-one')  
          {  
            for (var ii = 0; ii < elem.options.length; ii++)  
            {  
                if (elem.options[ii].selected != values[i])//elem.options[ii].defaultSelected  
                    if (elem.options[ii].value!=-1)  
                        return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
            }  
          }  
          else if ((elem.type == 'text') && elem.value != values[i])//elem.defaultValue )  
            return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
          else if ((elem.type == 'textarea') && elem.value != values[i])//elem.defaultValue )  
            return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
         }  
      }  
      // no changes - return nothing  
    }  
  
  }  
  
  
  
</script>  

warum so schwer wenn es einfach sein kann!

Vielen Dank für eure hilfe

Beste Grüsse

Lubb