【问题标题】:Form not submitting hidden input表单未提交隐藏输入
【发布时间】:2014-03-12 22:12:04
【问题描述】:

代码中有隐藏的输入,默认情况下必须是 TRY 并且可以使用下拉框进行更改。 代码: HTML:

<div class="form-group">
            <label class="col-sm-3 control-label">Fiyat</label>
            <div class="col-sm-4 col-md-3 col-lg-2">
                <div class="input-group input-group-sm">
                    <input type="text" placeholder="Fiyat" class="form-control js-listing-price js-numeric" name="price.amount" />
                    <div class="input-group-btn btn-default">
                        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                            <span class="js-currency-preview">TL</span>
                            <span class="caret"></span>
                        </button>
                        <ul class="dropdown-menu pull-right">
                            <li><a data-value="TRY">TL</a></li>
                            <li><a data-value="USD">$</a></li>
                            <li><a data-value="EUR">€</a></li>
                        </ul>
                        <input type="hidden" value="TRY" class="js-listing-price-currency js-currency" name="price.currency">
                    </div>
                </div><!-- /input-group -->
            </div>
        </div>

Javascript:

$('.dropdown-menu').on('click', 'li a', function(e) {
    e.preventDefault();
    $('.js-currency-preview').text($(this).text());
    $('.js-listing-price-currency').val($(this).data('value'));
  });
};

除了这个 js-currency 字段之外,所有其他字段都在工作。

【问题讨论】:

  • 在选择任何此下拉选项后 $('.js-listing-price-currency').val() 更改,但按下提交按钮时它不会提交此值。
  • 只是想知道,你有一个&lt;form&gt;标签吗?它没有显示在这里,它可能很重要。
  • $('.js-listing-price-currency').val($(this).attr('data-value'));
  • @Rafee $('.js-listing-price-currency').val($(this).data('value'));也可以,我在控制台中使用 $('.js-listing-price-currency').val() 检查它。是的,使用这个进行了测试,结果相同。
  • @AlexisWilke 当然我在 html 页面的顶部有
    标签。这是唯一产生错误的变量。

标签: javascript twitter-bootstrap-3


【解决方案1】:

由于 Backbone Binder 无法看到隐藏输入中的隐藏更改,因此它们不能在页面中更改。 可以通过在代码中添加trigger('change');来解决:

$('.js-listing-price-currency').val($(this).data('value')).trigger('change');

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多