禁用表单按钮,直到所有字段填写为rails 5.1

时间:2017-08-14 21:55:24

标签: jquery ruby-on-rails twitter-bootstrap forms

我有以下表单,我正在寻找一个解决方案来禁用该按钮,直到表单全部显示出来。使用Rails 5.1,twitter bootsrap和jquery。

<pagination>
<entriesperpage>2</entriesperpage>
</pagination>
“<0>"
<userid>Usertest1</userid>
“<1>"
<userid>Usertest2</userid>

寻找jquery解决方案。如何调用rails表单标记字段?

1 个答案:

答案 0 :(得分:0)

如果您为每个字段添加相同的类,则可以计算该类的所有字段,并且仅在填写所有字段后启用该按钮:

<script type="text/javascript">
    function checkForm() {
      var count = $('.checklist').filter(function() {
        return $(this).val() !== "";
      }).length;

      var total = $('.checklist').length;

      if (count == total) {
        $('.submit-form').removeClass('disabled');
        $('.submit-form').removeAttr('disabled');
          } else {
        $('.submit-form').addClass('disabled');
        $('.submit-form').attr('disabled', 'disabled');
      }
      console.log(count + '/' + total);
    }

    $('.checklist').on('keyup', checkForm);
</script>

<%= f.submit class: "btn btn-primary btn-outline btn-sm submit-form disabled", disabled: true %>

但如果某些是复选框,则可能需要调整count功能。