我想使用我保存在javacript变量中的一些localStorage变量在twig中设置form_widget数组。
哪种方法是最好的?
我尝试获取输入字段的ID并使用js中的jquery设置值,但是它不起作用
<div class="col-sm-3 year">
{{ form_widget(form.birthdate.year, {'value': 'birthdate.year'}) }}
</div>
<script>
var birthdateJSON = localStorage.getItem('user_birthdate');
var birthdate = JSON.parse(birthdateJSON);
</script>
答案 0 :(得分:0)
在准备使用javascript(客户端)之前,已完成/完成(服务器端)树枝渲染。所以你不能回到过去。唯一的选择是使用javascript。
如果您的form_widget返回一个选择框:(我想是因为您所说的“数组”)
<div class="year">
<select name="myselect" id="myselect">
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
</select>
</div>
<script>
var birthdateJSON = localStorage.getItem('user_birthdate');
var birthdate = JSON.parse(birthdateJSON);
var year = birthdate.year;
// Be sure to pre-select it after document ready
$(function() {
// You can do this
$('.year select option[value="' + year + '"]').attr('selected', 'selected');
// Or this
$('.year select').val(year);
});
</script>
如果是文本字段
<div class="year">
<input type="text" name="myselect" id="myselect">
</div>
<script>
var birthdateJSON = localStorage.getItem('user_birthdate');
var birthdate = JSON.parse(birthdateJSON);
var year = birthdate.year;
// Be sure to pre-fill it after document ready
$(function() {
// You can do this
$('.year input').val(year);
});
</script>