我采用了 Jasny Bootstrap 的Fileinput上传文件的表单(为了好的用户体验,remote: true 哦,另外我尚未采用高端的前端框架),我需要完成用户上传文件的前端验证。目前后端传来的错误提示已经摆到正确的地方(如下图所示),但是当我点击改变
,并选择其它文件后,文件显示栏中的soi.pdf
并没有被替换为新的文件名称,但是实际文件已经被替换。
我写的显示错误的 JS 函数为:
@showValidationError = (inputName, errorMessage) ->
$("label[for=#{inputName}]").attr('style', 'color: #AA3F44;')
if $("input##{inputName}").length == 1
input = $("input##{inputName}")
else if $("div.#{inputName}").length == 1
input = $("div.#{inputName}")
input
.attr('style', 'border-color: #AA3F44;')
.after("""
<p style='color: #AA3F44; margin-top: 5px;' id='#{inputName}-error-message'>
#{errorMessage}
</p>
""")
# 当用户开始编辑时,去除错误显示。
input.bind 'click keypress', ->
$("label[for=#{inputName}]").attr('style', 'color: #333333;')
$(this).attr('style', 'border-color: #CCCCCC;')
$("##{inputName}-error-message").remove()
请问怎么解决呢?或者有其它更好的方式吗?我看过client_side_validations-simple_form
,但是它依赖的 simple_form 还停留在很旧的版本。十分感谢!