【问题标题】:On step changing check file size and file type Jquery-Steps在步骤更改检查文件大小和文件类型 Jquery-Steps
【发布时间】:2014-03-12 09:20:12
【问题描述】:

我正在使用jquery-steps plugin。现在我试图检查文件扩展名是否为.jpg。除了文件类型检查外,一切正常。它接受一切,但不应该

$("#passportForm").steps({
         headerTag: "h1",
         bodyTag: "fieldset",
         enableFinishButton: false,
         transitionEffect: "fade",
         stepsOrientation: "vertical",
         onStepChanging: function (event, currentIndex, newIndex) {
             // Always allow going backward even if the current step contains invalid fields!
             if (currentIndex > newIndex) {
                 return true;
             }

             var form = $(this);

             // Clean up if user went backward before
             if (currentIndex < newIndex) {
                 // To remove error styles
                 $(".body:eq(" + newIndex + ") label.error", form).remove();
                 $(".body:eq(" + newIndex + ") .error", form).removeClass("error");
             }

             // Disable validation on fields that are disabled or hidden.
             form.validate({
                 rules: {field: {required: true,extension: "jpeg|jpg"}}***,
                 errorPlacement: function (error, element) { }
             }).settings.ignore = ":disabled,:hidden";

             // Start validation; Prevent going forward if false
             return form.valid();
         },
         onStepChanged: function (event, currentIndex, priorIndex) {

         },
         onFinishing: function (event, currentIndex) {
             var form = $(this);

             // Disable validation on fields that are disabled.
             // At this point it's recommended to do an overall check (mean ignoring only disabled fields)
             form.validate({ errorPlacement: function (error, element) { } }).settings.ignore = ":disabled";

             // Start validation; Prevent form submission if false
             return form.valid();
         },
         onFinished: function (event, currentIndex) {
             var form = $(this);

             form.submit();
         }
     });

我还需要检查文件大小。它必须小于 3mb。第三个问题是当我们点击快速下一步按钮时,它会在没有验证的情况下进入下一步

【问题讨论】:

    标签: javascript jquery jquery-validate jquery-steps


    【解决方案1】:

    您的方法(使用 jQuery Validate 插件)完全有缺陷......

    $("#passportForm").steps({
        ....
        onStepChanging: function (event, currentIndex, newIndex) {
             ....
    
             var form = $(this);
             ....
    
             // Disable validation on fields that are disabled or hidden.
             form.validate({
                 rules: {field: {required: true,extension: "jpeg|jpg"}}***,
                 errorPlacement: function (error, element) { }
             }).settings.ignore = ":disabled,:hidden";
    
             // Start validation; Prevent going forward if false
             return form.valid();
         },
         ....
         onFinishing: function (event, currentIndex) {
             var form = $(this);
    
             // Disable validation on fields that are disabled.
             // At this point it's recommended to do an overall check (mean ignoring only disabled fields)
             form.validate({ errorPlacement: function (error, element) { } }).settings.ignore = ":disabled";
    
             // Start validation; Prevent form submission if false
             return form.valid();
         },
         ....
     });
    

    您不能随时使用一组新选项简单地调用.validate()

    根据您的代码 cmets,您似乎也可能认为您调用 validate() 来触发按需验证......这不是它的工作原理。

    .validate() 方法仅用于在页面加载时初始化表单上的插件一次。一旦被调用(并初始化),任何对 .validate() 方法的后续调用都会被忽略。

    如果您有一个已经用.validate() 初始化的表单,您可以随时调用.valid() 方法来触发验证测试。

    如果您需要“启动/停止”或切换验证,则不能。但是,您可以使用.rules() 方法模拟类似的东西。您可以在所有input 元素上调用.rules('remove') 以删除所有验证规则,从而有效地删除任何验证检查。然后您可以在任何input 元素上调用.rules('add', { /* your rules */ }) 以将规则放回原处,从而有效地再次进行验证。

    尽管允许添加/删除规则,但一旦通过调用 .validate() 进行初始化,您绝对不能添加/删除/更改任何设置或选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      相关资源
      最近更新 更多