表格不提交隐藏的输入 [英] Form not submitting hidden input

查看:71
本文介绍了表格不提交隐藏的输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码中有隐藏的输入,默认情况下必须为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 =textplaceholder =Fiyatclass =form-control js-listing-price js-numericname =price.amount/>
< div class =input-group-btn btn-default>
< button type =buttonclass =btn btn-default dropdown-toggledata-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 =hiddenvalue =TRYclass =js-listing-price-currency js-currencyname =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字段外,所有其他字段都在工作。

解决方案

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



<$ p $ 。p> $( 'JS-列表价格货币 ')VAL($(本)。数据(' 值 '))触发(' 变更');


There is hidden input in code which must be TRY by default and be changeable using dropdown box. Code: 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'));
  });
};

All other fields are working except this js-currency field.

解决方案

As Backbone Binder can't see hidden changes in hidden inputs they mustn't change in page. It can be solved by adding trigger('change'); to the code:

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

这篇关于表格不提交隐藏的输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆