Verhindern MVC form submit mit Javascript-Funktion

Ich habe eine upload.ascx in meinem Projekt. Es wird geladen innen Jquery Popup.

Den upload.ascx enthält File Upload Kontrolle. Die Datei-upload-Steuerelement uploads .xlsx and .xls - Dateien. Ich habe Java script Funktion zu tun, diese überprüfung (Zur Vermeidung von unnötigen Dateien hochgeladen).

Onchange of FileUpload Kontrolle und Onclick of Submit button die gleichen Validierungs-Funktion aufgerufen werden.

Den Datei-Upload Validierung Funktion arbeitet für beide anrufen. Wenn der Benutzer klickt auf submit-button die gleiche Funktion wird immer aufgerufen und funktioniert Prima.

Mein Problem ist: In Meinem Validierung Funktion, die ich geschrieben habe return false. Nach der Anzeige der Warnmeldung, die Seite wird immer umgeleitet, um einige URL (localhost/Admin/Authorization/AcceptFile.aspx). AcceptFile ist mein ActionResult Namen. Es sollte nicht passieren. Die Funktion False zurückgeben. Aber die Form wird immer umgeleitet, um Über URL warum.?

Ich habe den debugger in meinen Handlungen Resultieren, die nicht immer genannt, wenn seine falsche Datei(Seiner richtigen). Wenn Ihr die richtige Datei die Index Datei geladen wird, mit Erfolg-Nachricht(Aktion Ergebnis wird immer genannt und funktioniert Prima). .

Ich vermute, MVC-Form. Wenn die falsche Datei hochgeladen die Umleitung geschieht, mit aus aufrufen Aktion Ergebnis dieser gestoppt werden sollte.

<% using (Html.BeginForm("AcceptFile", "Authorization", FormMethod.Post, new { enctype = "multipart/form-data" }))
       {%>

Meine Javascript Funktion:

function checkfile(sender) {
        var validExts = new Array(".xlsx", ".xls");
        var fileExt = sender.value;
        var strValue = false;
        fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
        if (validExts.indexOf(fileExt) < 0) {
            ShowMessage(-1, "Invalid file selected, valid files are .xlsx and .xls types.");
            strValue = false;
        }
        else {
            strValue = true;
        }
        return strValue;
    }

Meinem upload.ascx-Code:

<div>
    <% using (Html.BeginForm("AcceptFile", "Authorization", FormMethod.Post, new { enctype = "multipart/form-data" }))
       {%>

          <input type="file" id="fileAuthorization" name="fileAuthorization" onchange="checkfile(this);" />

          <input type="submit" id="btnSave" name="btnSave" value="Upload" onclick="javascript:return checkfile(document.getElementById('fileAuthorization'))" />

    <%} %>
</div>
InformationsquelleAutor RajeshKdev | 2013-05-21
Schreibe einen Kommentar