【问题标题】:Rubu on Rails print only field forms with valuesRuby on Rails 仅打印具有值的字段表单
【发布时间】:2020-08-18 15:44:42
【问题描述】:

我有 form_for @shop,:url => {:action => :withdraw_from} do |f| 输出一个包含许多字段的表单,如下所示:

<div class="field inventory">
  <label for="5cent">5cent</label>
  <input type="text" name="5cent" id="5cent" placeholder="5">
</div>

按下提交按钮时,我只想将用户填写的表单字段打印到打印机。我正在考虑在打印之前使用 javascript 检查,但我不知道这是否正确。 这样做是否正确:

$(document).ready(function () {
    $("#form_submit").click(function(event) {
      if (!validate_inventory()){
        alert('Check the drawer!');
      }else{
          ADD ONLY FIELDS WITH INPUT TO THE PRINT INTERFACE 
          window.print();
          $('#withdraw_form').submit();
      }
    });
});

我怎样才能只获得有输入的字段?

【问题讨论】:

    标签: javascript ruby-on-rails forms


    【解决方案1】:

    最简单的方法是在更改时标记输入字段:

    $("input").on("change", e => {
      e.target.data("changed", true) // or similar
    })
    

    以及提交时的下一次迭代:

    $("#form_submit").click(function(event) {
       $('*[data-changed="true"]').each( changed => doSomethingWithMe(changed) )
    })
    

    【讨论】:

      【解决方案2】:

      您可以通过创建FormData 实例来遍历表单的值。

      $("#form_submit").click(function(event) {
        let formData = new FormData(event.target.form);
        let obj = {}
        formData.forEach(function(value, key){
          if (value && value !== "") {
            obj[key] = value;
          }
        });
        console.log(obj);
        event.preventDefault();
      });
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <form>
        <label for="foo">Foo</label>
        <input type="text" name="5cent" value="John Doe" />
        <input type="text" name="a" />
        <input type="text" name="b" />
        <select name="c"> 
          <option>1</option>
          <option>2</option>
          <option>3</option>
        </select>
        <input type="submit" value="print" id="form_submit">
      </form>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        • 1970-01-01
        相关资源
        最近更新 更多