gpt4 book ai didi

javascript - 在步骤中更改检查文件大小和文件类型 Jquery-Steps

转载 作者:行者123 更新时间:2023-12-02 17:39:22 25 4
gpt4 key购买 nike

我正在使用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。第三个问题是,当我们单击快速“下一步”按钮时,它会在不验证的情况下进入下一步

最佳答案

您的方法(使用 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()

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

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

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

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

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

关于javascript - 在步骤中更改检查文件大小和文件类型 Jquery-Steps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com