0

ASP.Net アプリケーションで ajax フォームを使用して画像をアップロードしています。画像を更新する必要があるので、これを試します:

$(function () {
   $(".fileUploadForm").ajaxForm({
      success: function (data, text, xhr, form) {
       var tmp = jQuery(this).closest("img[class=imageResource]").attr('src');
      }
   });
});

これが私のイメージです:

 <img class="imageResource" alt="picture" src="@Url.Action("Picture", new { id = Model.Id })" />

同じ名前の画像ソースを見つけて書き換えるにはどうすればよいですか

アップデート

これが私のhtmlです:

<div class="thumbnail">
<a target="_blank" href="/Template/OriginalPicture/8b8c824b-9605-4931-9fe2-1f5979baca42">
<img class="imageResource" src="/Template/Picture/8b8c824b-9605-4931-9fe2-1f5979baca42" alt="picture">
</a>
<div class="caption">
<div style="margin-bottom: 5px;">
<form class="form-horizontal fileUploadForm" method="post" enctype="multipart/form-data" action="/Template/PictureResource?resourceId=8b8c824b-9605-4931-9fe2-1f5979baca42&configId=aa383b5a-23b2-4780-965e-ef4e95cd3fa2&pageNumber=1">
<div class="input-append">
<input type="file" name="picture">
<input class="span1" type="text" size="128" style="width: 86px;">
<button class="btn browse" type="button"> ...</button>
<button class="btn" type="submit">Upload</button>
</div>
</form>
</div>
</div>
4

1 に答える 1

1

このコードを試してください:

$(function () {
   $(".fileUploadForm").ajaxForm({
      success: function (data, text, xhr, form) {
       var tmp = form.closest('.thumbnail').find('.imageResource').attr('src');
        form.closest('.thumbnail').find('.imageResource').attr('src', tmp + "?" + (new Date()).getTime());
      }
   });
});

jQuery(this) がフォームを返すかどうかはわかりません (「これ」が何であるか覚えていません) (new Date()).getTime()- 画像の URL を変更し、ブラウザーがキャッシュからではなく画像を強制的に取得するだけです。うーん。そして気付かない.closest- 子要素ではなく、最も近い親を検索します。そのために使うことがあります.find

form- ドキュメントによるとclosest('.thumbnail')、フォームに最も近いクラス .thumbnail を持つ親が見つかります。内でのみ.find('.imageResource')クラスを持つ要素を検索します。サムネイル内にクラス imageResource を持つイメージ タグが 1 つしかないため、上記のコードは正常に動作するはずです。imageResource.thumbnail

于 2012-09-11T14:19:36.670 に答える