如何解决使用val和trigger'change'更改输入的值
我有一个按钮列表,每个按钮都有一个特定的值,当我单击按钮,然后将此值放入特定的输入时,我想获得这些值之一。我正在使用symfony和jquery来做到这一点。 这是我的代码:
具有特定值的其他按钮:
{% block body %}
<div class="row">
<div class="col-sm-12">
<div class="card-box ">
<h2 class="m-t-0 header-title">{{ "Données traitement"|trans }}</h2>
<div class="btn-group btn-group-lg" role="group" aria-label="...">
{% for s in secteur %}
<button id="linkSecteur_{{ s.SecteurId }}" class="text-lg-left btn btn-link z-btn-secteur essai" data-id="{{ s.SecteurId }}">{{ s.LibLong }}</button>
{% endfor %}
</div>
我要将按钮选择的值放在其中的输入:
<form id="searchForm" class="form-horizontal search-form " role="form" action="{{ path('api_post',{id: odata_search}) }}" method="post">
<div class="row">
<div class="col-6 col-md-8">{{ form_row(form.Secteur) }}</div>
这是我尝试修复的测试:
var $searchFieldSecteur = $("#form_Secteur");
$('#linkSecteur_02').on('click',function() {
var long = $(this).val('hello');
//console.log(long);
$searchFieldSecteur.val(long).trigger('change')
});
解决方法
如果按值表示按钮的data-id attr,那么使用.val()不会帮助您,则必须使用attr()
var $searchFieldSecteur = $("#form_Secteur");
// use a class instead of id to make the rule apply on multiple buttons
$('.z-btn-secteur').on('click',function() {
// get value from data-id attribute
var long = $(this).attr('data-id');
console.log(long);
$searchFieldSecteur.val(long).trigger('change')
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body style="background:white">
<button id="linkSecteur_01" class="text-lg-left btn btn-link z-btn-secteur essai" data-id="01">button 1</button>
<button id="linkSecteur_02" class="text-lg-left btn btn-link z-btn-secteur essai" data-id="02">button 2</button>
<button id="linkSecteur_03" class="text-lg-left btn btn-link z-btn-secteur essai" data-id="03">button 3</button>
<form id="searchForm" style="margin-top:25px" class="form-horizontal search-form " role="form" method="post">
<input id="form_Secteur" type="text">
</form>
</body>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。