我正在尝试使用jQuery验证插件验证表单中的文件上载字段。我只需要检查文件是否已上载,而不需要检查文件是否具有特定的大小和/或类型。在最初提交时一切正常,问题是表单被提交到数据库,并允许以后编辑。编辑表单时,我设置了一个附加的隐藏字段,末尾附加了\u orig
。因此,对于名为check\u upload
的字段,有一个名为check\u upload\u orig
的字段,其中将包含以前的提交数据。这样用户就不必每次都重新上传文件。因此,当check\u upload
字段为空时,我不知道如何编写一个方法来检查“check\u upload\u orig”字段是否有值。此特定表单中有多个文件上载字段。有些是必需的,有些不是。有什么建议吗?
以下是新表单上的代码:
<script type="text/javascript">
$(document).ready(function(){
$("#modify").validate({
onkeyup: function(element){ $(element).valid(); },
onfocusout: function(element){ $(element).valid(); },
rules: {
},
highlight: function(element, errorClass, validclass) {
// if the element is a checkbox, highlight the entire group
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').addClass('error');
} else {
$(element).addClass('error');
}
},
unhighlight: function(element, errorClass, validclass) {
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').removeClass('error');
} else {
$(element).removeClass('error');
}
},
submitHandler: function(form) {
form.submit();
}
});
}); // end $(document).ready(function()
</script>
<form enctype="multipart/form-data" id="modify" name="modify" action="./" method="post">
<input type="file" id="check_upload" name="check_upload" class="" />
<input type="hidden" id="check_upload_orig" name="check_upload_orig" value="" />
<input type="submit" />
</form>
下面是编辑表单的代码。唯一的区别是检查上传\u原始字段
包含上一次提交的值。因此,如果设置了该值,则不应要求该字段上载新文件。
<script type="text/javascript">
$(document).ready(function(){
$("#modify").validate({
onkeyup: function(element){ $(element).valid(); },
onfocusout: function(element){ $(element).valid(); },
rules: {
},
highlight: function(element, errorClass, validclass) {
// if the element is a checkbox, highlight the entire group
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').addClass('error');
} else {
$(element).addClass('error');
}
},
unhighlight: function(element, errorClass, validclass) {
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').removeClass('error');
} else {
$(element).removeClass('error');
}
},
submitHandler: function(form) {
form.submit();
}
});
}); // end $(document).ready(function()
</script>
<form enctype="multipart/form-data" id="modify" name="modify" action="./" method="post">
<input type="file" id="check_upload" name="check_upload" class="" />
<input type="hidden" id="check_upload_orig" name="check_upload_orig" value="32.jpg" />
<input type="submit" name="view_fa_php_submit" id="view_fa_php_submit" class="submit view_fa_php_submit" value="Continue" />
</form>
您的规则
可能看起来像:
rules: {
check_upload: {
required: '#check_upload_orig:blank'
}
}
这意味着如果check\u upload\u orig
为空,则只需执行check\u upload
。:blank
-pseudoselector是jQuery验证的自定义选择器(请参阅:http://jqueryvalidation.org/blank-selector/).
有关所需功能的更多信息,请参阅http://jqueryvalidation.org/required-method/
我希望这对你有点帮助
代码没有经过测试
以下是我最后使用的代码:
<script type="text/javascript">
$(document).ready(function(){
$("#modify").validate({
onkeyup: function(element){ $(element).valid(); },
onfocusout: function(element){ $(element).valid(); },
rules: {
check_upload: {
required: {
depends: function(element) {
return $("#check_upload_orig").is(":blank");
}
},
},
},
highlight: function(element, errorClass, validclass) {
// if the element is a checkbox, highlight the entire group
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').addClass('error');
} else {
$(element).addClass('error');
}
},
unhighlight: function(element, errorClass, validclass) {
if(element.type=='checkbox') {
$(element).parent('.ctrlHolder').removeClass('error');
} else {
$(element).removeClass('error');
}
},
submitHandler: function(form) {
form.submit();
}
});
}); // end $(document).ready(function()
</script>
<form enctype="multipart/form-data" id="modify" name="modify" action="./" method="post">
<input type="file" id="check_upload" name="check_upload" class="" />
<input type="hidden" id="check_upload_orig" name="check_upload_orig" value="32.jpg" />
<input type="submit" name="view_fa_php_submit" id="view_fa_php_submit" class="submit view_fa_php_submit" value="Continue" />
</form>
在rails应用程序中使用AngularJS时,我遇到了一个问题:编辑记录时,文本字段的值设置为空。有没有办法告诉AngularJS使用rails给表单元素的值作为初始值? 我准备了一个JSFIDLE来演示我遇到的问题: http://jsfiddle.net/YUza7/15/
问题内容: 我的工作流程中有一些JSONObject,并且通过将它们写入json文件来存储相同的JSONObject。 我想要一种有效的方式来更新json文件, 仅 更新 需要的字段, 以及更新的JSONObjects实例的内容。 例如: 档案中我有 在记忆中我有 更新将像: 通常,我想更新每个键的内容较新(不同)的值。 实际上我的代码是: 问题答案: 只需执行以下操作即可:
问题内容: 我对AngularJS有疑问。如果我使用xeditable 我无法输入浮点数…那么,如何添加浮点数并在视图中进行浮点验证? 问题答案: 您需要将标签的属性设置为“ any”。 解决此问题的一种方法是利用xeditable的语法,其中您指定的任何开头的属性都将传递到基础输入标签:
我上传文件有问题。我使用kartik-v/yii2小部件文件输入扩展。这是我的代码: 表单模型规则 窗体视图 控制器动作 当我提交表单时,总是出现错误“需要图像字段”。我已经阅读了很多教程,但在使用ajax验证时仍然存在同样的问题。有人能看看它,告诉我我做错了什么吗?
我试图在上传图片之前验证我的表单,但是我在中间件上得到了空字符串 下面是我的中间件: 我知道我可以使用multer的fileFilter,但是有些时候我没有任何图像可以上传,只有string来存储和验证,我尝试将req.body从multipart/form-data解析为string,然后验证并使用next(),但是我得到了一个范围错误,我该如何解决这个问题呢?
vi 可以在命令行下编辑文件。 vi 要编辑的文件路径 练习:编辑文件 vi ninghao-project/README.md 这样会打开要编辑的文件,使用方向键可以移动光标。 编辑 想要编辑按一下小 i ,这样会进入到 vi 编辑器的编辑模式。这时你可以编辑文件里的内容,修改完成以后,按 esc 可以退出编辑模式。 搜索 搜索文件里的内容可以按 / ,然后输入要搜索的关键词,n 继续查找,