jQuery 验证不处理隐藏输入
jQuery Validate not working on hidden input
我无法使 jquery 验证我的文件输入。
在相同的表格中,我也验证了其他输入,它们有效,但它似乎不适用于这些文件。
如果我不在输入中使用样式 display=none,则所需的规则有效,但是我也需要扩展规则并且我需要隐藏输入,因为我需要设置样式按钮以更好的方式。
有什么解决办法吗?我的意思是,jquery 验证和上传按钮的良好风格?
这是我的 html:
<div class="form-group">
<label>Title: *</label>
<div class="help-info imput-text">Subtitle</div>
<label class="btn btn-raised btn-primary btn-lg btn-round waves-effect" id="upload_button">
<input type="file" id="file" name="file" style="display: none;" data-required_file="true">Load
</label>
</div>
这是我的 javascript:
$(document).ready(function () {
$("#my_form").validate({
rules: {
file: {
required: true,
extension: "jpg|pdf",
},
}
});
});
$("#file").on("change", (event) => {
const $file = $(event.target);
if ($file.valid()) {
//Do stuff
}
});
这些是我的 jquery 进口商品:
<script src="'theme/plugins/jquery-validation/jquery.validate.js')"></script>
<script src="theme/plugins/jquery-validation/additional-methods.js')"></script>
<script src="'theme/plugins/jquery-steps/jquery.steps.js'"></script>
<script src="'theme/js/pages/forms/form-validation.js'"></script>
<script src="'theme/plugins/jquery-validation/localization/messages_es.js'"></script>
那么你可以使用可见性而不是显示:none;
input{
visibility:hidden;
position: absolute;
}
label{
position: relative;
}
我无法使 jquery 验证我的文件输入。
在相同的表格中,我也验证了其他输入,它们有效,但它似乎不适用于这些文件。
如果我不在输入中使用样式 display=none,则所需的规则有效,但是我也需要扩展规则并且我需要隐藏输入,因为我需要设置样式按钮以更好的方式。
有什么解决办法吗?我的意思是,jquery 验证和上传按钮的良好风格?
这是我的 html:
<div class="form-group">
<label>Title: *</label>
<div class="help-info imput-text">Subtitle</div>
<label class="btn btn-raised btn-primary btn-lg btn-round waves-effect" id="upload_button">
<input type="file" id="file" name="file" style="display: none;" data-required_file="true">Load
</label>
</div>
这是我的 javascript:
$(document).ready(function () {
$("#my_form").validate({
rules: {
file: {
required: true,
extension: "jpg|pdf",
},
}
});
});
$("#file").on("change", (event) => {
const $file = $(event.target);
if ($file.valid()) {
//Do stuff
}
});
这些是我的 jquery 进口商品:
<script src="'theme/plugins/jquery-validation/jquery.validate.js')"></script>
<script src="theme/plugins/jquery-validation/additional-methods.js')"></script>
<script src="'theme/plugins/jquery-steps/jquery.steps.js'"></script>
<script src="'theme/js/pages/forms/form-validation.js'"></script>
<script src="'theme/plugins/jquery-validation/localization/messages_es.js'"></script>
那么你可以使用可见性而不是显示:none;
input{
visibility:hidden;
position: absolute;
}
label{
position: relative;
}