1

送信ボタンをクリックすると、「input type="submit" id="submit" value="Save"」となります。ハードディスクから選択したファイルのアップロードを開始します。ただし、「アップロード中」というテキストで div を作成し、その div のスタイルが visibility:hidden; であるため、これはすべて重要ではありません。今私が欲しいのは、divが表示される送信ボタン(ファイルのアップロードが開始される時間)をクリックすると、「ファイルのアップロード中にステータスメッセージを表示するにはどうすればよいですか?」など、いくつかのことを試したことです。運が悪いのは私だけかもしれませんが、私はjQueryにかなり慣れていないので、助けていただければ幸いです。

ありがとう

編集:以下のすべてのコードを試しましたが、何も機能しませんでした。

$('#editform').submit(function() {
        $('#loadingdiv').show();
        return true;
    });

(editform は私が作業しているフォーム ID です) しかし、うまくいきません。

以下の編集ページ全体

@using (Html.BeginForm("Edit", "Admin",FormMethod.Post, new { enctype = multipart/form-data", id = "editform" })){
@Html.EditorForModel()
<div class="editor-field">
    @if (Model.ImageData == null)
    {
        @:None
    }
    else
    {
        <img width="150" height="150"
             src="@Url.Action("GetImage", "Product", new { Model.ProductID })" alt="bic boii" />
    }
    <div>
        Upload nieuw image: &nbsp; &nbsp; &nbsp;
        <input type="file" name="Image" />
    </div>
</div>

<div>
    Upload nieuw document:
    <input type="file" name="Pdf" />
</div>

<script type="text/javascript">
    $('#editform').submit(function() {
        $('#loadingdiv').show();
        return true;
    });

</script>
<input type="submit" id="submit" value="Opslaan" />
@Html.ActionLink("Ga terug", "Index")
<div id="loadingdiv">
    Bezig met uploaden.
</div>}

うーん、フォームにブレークポイントを配置した後、スクリプトを完全にスキップするだけです。それが何なのかわかりません

4

2 に答える 2

1
$("#submit").click(function () { $("#yourContainerId").show(); });

これは次のように述べています: 送信ボタンがクリックされると、メッセージが含まれている div (ここでは yourContainerId と呼ばれる ID) を選択して表示する関数を起動します。

うまくいかない場合は、何が起こっているのかを知るのに役立つエラーを返す必要があります。また、質問にクライアントコードを投稿すると簡単になります。メッセージを表示しようとしているコードに実行が到達するのを妨げているエラーがコードにある可能性があります。

于 2012-12-04T11:06:26.240 に答える
0

Ajax を使用してファイルをアップロードできますか? 次に、ajax 呼び出しの前に Div の表示を呼び出し、完了したら div を非表示にできます。

$.ajax({

    type: "POST",
    url: "/SomeController/SomeAction",
    data: $('form').serialize(),
    timeout: 3000,
    async: false,
    beforeSend: function() {
        $("loading").show();

    },

    complete: function() {
        $("loading").hide();

    },        
    cache: false,
    success: function(result) {

         return result;

    },
    error: function(error) {
        $("laoding").hide();
        alert("Some problems have occured. Please try again later: " + error);

    }

});
于 2012-12-04T10:40:57.080 に答える