0

根据我的代码验证功能应该只接受 ZIP 版本。

所以它在我的第一个系统上运行所有 3 个浏览器“IE 10、Chrome 29 和 Firfox 24”并且没有安装 WINRAR

但是现在我遇到了一些奇怪的问题,我的代码运行良好,直到我没有安装 WINRAR。在我安装了 WINRAR 的另一个系统上,我遇到了问题,如果我也上传 ZIP 文件,在我的第二个系统,仍然提示“它只接受ZIP文件”的错误

下面是我的代码和小提琴:

查询

<script>

    $().ready(function () {

        // validate signup form on keyup and submit
        $("#deploymentUploadForm").validate({

            rules:{
                File: {
                    required: true,
                    accept: "application/zip,application/octet-stream,application/x-zip,application/x-zip-compressed"
                }
            },

            messages:{
                File: {
                    required: "This field is mandatory!",
                    accept: "Accepts only zip file!"
                }
            }  

        });

    });
</script>

HTML

    <div id="wizardSteps">
            <form action="~/Deployment/FileUpload" name="deploymentUploadForm" id="deploymentUploadForm" enctype="multipart/form-data" method="post">
                <h1>Deployment</h1>

                <p>
                    <input type="file" name="File" accept="application/zip">
                </p>

                <div role="button" class="marginTop50 marginBottom">
                    <p>
                        <input type="submit" id="getDeploymentList" value="Upload" class="active" >
                    </p>
                </div>
            </form>
        </div>

小提琴 http://jsfiddle.net/aasthatuteja/rMS8D/

当我在我的第一个系统中安装 WINRAR 时,我也遇到了同样的问题(在安装 WINRAR 之前工作正常)

如果您需要其他任何东西,请告诉我。

提前感谢!

4

1 回答 1

0

在努力寻找为什么“accept:”方法不接受由“WinRaR”创建的zip文件之后。我用“additional-methods.js”中提供的“extension”更改了“accept”方法—— <script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>. 请在下面找到最新的代码:

查询:

<script>

    $().ready(function () {

        // validate signup form on keyup and submit
        $("#deploymentUploadForm").validate({

            rules:{
                File: {
                    required: true,
                    extension: "zip"
                }
            },

            messages:{
                File: {
                    required: "This field is mandatory!",
                    extension: "Accepts only zip file!"
                }
            }  

        });

    });
</script>

如果您不想包含完整的“additional-methods.js”,那么下面是方法:-

jQuery.validator.addMethod("extension", function(value, element, param) {
  param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
  return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
}, jQuery.format("Please enter a value with a valid extension."));

感谢大家调查这个问题!

于 2013-09-27T20:28:18.457 回答