我正在尝试获取值并将其传递给隐藏输入,以便通过$_POST
发送表单数据。我有一个下拉按钮和以下代码,以便在用户选择选项时更新值:
jQuery(document).ready(function($) {
var espSeleccionada = $('button[data-id="select-especialidad"]');
espSeleccionada.on("click", function() {
var x = $(this).text();
$('#boton-prueba').text(x);
});
});
代码应该将值从一个按钮传递到另一个按钮,如此处的示例所示,但是,当我从WordPress页眉/页脚/主题加载代码时,没有任何反应。相反,当我在控制台上写它时它工作正常。控制台中没有JS错误。
请注意,我正在使用.text()
来测试代码是否有效,但在上线之前会有.val()
。
这是按钮HTML:
<button type="button" class="btn dropdown-toggle btn-default" data-toggle="dropdown" data-id="select-especialidad" title="Hacienda" aria-expanded="false"><span class="filter-option pull-left">Hacienda</span></button>
以下是一个示例:https://fiddle.jshell.net/t9mvoxj5/
编辑包含完整的代码:
( function( $ ) {
var num_cols = 3,
container = $('#menu-preparadores-de-oposiciones-en'),
listItem = 'li',
listClass = 'sub-list';
container.each(function() {
var items_per_col = new Array(),
items = $(this).find(listItem),
min_items_per_col = Math.floor(items.length / num_cols),
difference = items.length - (min_items_per_col * num_cols);
for (var i = 0; i < num_cols; i++) {
if (i < difference) {
items_per_col[i] = min_items_per_col + 1;
} else {
items_per_col[i] = min_items_per_col;
}
}
for (var i = 0; i < num_cols; i++) {
$(this).append($('<ul ></ul>').addClass(listClass));
for (var j = 0; j < items_per_col[i]; j++) {
var pointer = 0;
for (var k = 0; k < i; k++) {
pointer += items_per_col[k];
}
$(this).find('.' + listClass).last().append(items[j + pointer]);
}
}
});
if ($("body").hasClass("page-id-64")) {
$('.tab-content').addClass('col-sm-9');
$('#custom-tabs-0').tabCollapse();
}
} ) ( jQuery );
jQuery(document).ready(function($) {
var espSeleccionada = $('button[data-id="select-especialidad"]');
espSeleccionada.on("click", function() {
var x = $(this).text();
$('#boton-prueba').text(x);
});
});
答案 0 :(得分:0)
嗯,代码很好,问题是bootstrap-select正在使用目标button[data-id="select-especialidad"]
,即使我的代码之前加载了bootstrap-select,也需要几秒钟(或至少一点点) )处理信息。
因此代码应该在检查事件已加载的函数之后被包装。这是最终的代码:
$('#select-especialidad').on('loaded.bs.select', function (e) {
var y = $(this).val();
$('#select-especialidad-hidden').val(y);
var espSeleccionada = $('button[data-id="select-especialidad"] > span.filter-option.pull-left');
espSeleccionada.on("click", function() {
var x = $(this).text();
$('#select-especialidad-hidden').val(x);
});
});
loaded.bs.select有关bootstrap-select事件的更多信息。