0

ファイル入力と送信ボタンがある部分ビューがあります。送信ボタンをクリックしてファイル入力を無効にしようとすると、コントローラーで HttpPostedFiles が null になります。私は Jquery を初めて使用するので、送信ボタンのデフォルトの動作に干渉している可能性があると思います。クリックイベントでバインド解除を行うと、すべてが元に戻り、ファイル入力が再び有効になります。したがって、送信ボタンのマウスダウンでファイル入力を無効にしようとしましたが、同じ問題が再発しました。このコードを削除すると、投稿されたファイルが取得されます。

私の見解には以下が含まれます:

@{ Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, 
new { id  "fileUploader",enctype  "multipart/form-data" });}

<div>
<table>
<tr><td><label for="file1">Filename:</label>           
<input type="file" name="files" id="file1" /></td></tr>
<tr><td><label for="file2">Filename:</label>         
<input type="file" name="files" id="file2" /></td></tr>     
<tr><td>  <input type="submit" id="btnUpload" name="Command" Value="Upload"/> </td></tr> </table>
</div>
@{ Html.EndForm();}

私のスクリプトファイルには以下が含まれています:

$(document).ready(function () {
 $('#btnUpload').click(function (e) {
        $('#file1').attr('disabled', true);
        $('#file2').attr('disabled', true);


    });
});

送信ボタンの動作が台無しになることなく、ファイル入力 (入力タイプ = "ファイル") を無効にするにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

コントロール全体を無効にするのではなく、送信ボタンのクリック時にファイル入力のクリック イベントを無効にすることで問題を解決しました。ユーザーが無効になっていると感じられるように、半透明にもしました。

$('#file1').on("click", false);
    $('#file2').on("click", false);

    $('#file1').css("opacity", "0.5");
    $('#file2').css("opacity", "0.5");

コントロール全体を無効にすると、投稿されたファイルが null になりました。

于 2013-11-13T05:28:27.403 に答える