JavaScript Jasny Bootstrap fileinput 的前端验证

dongli1985 · 2015年11月17日 · 7996 次阅读

我采用了 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 还停留在很旧的版本。十分感谢!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号