gpt4 book ai didi

javascript - Jquery UI 选项卡和选择框 - 下一个/上一个按钮

转载 作者:行者123 更新时间:2023-11-29 10:50:13 26 4
gpt4 key购买 nike

我目前正在使用 Jquery UI 选项卡和动态选择框。我目前正在尝试禁用按钮,直到用户从选择框中选择和项目。是否有可能/如何让用户在前进到下一个选项卡之前首先单击选择框中的项目?我没有任何可以构建的东西,但这是我的 EXAMPLE到目前为止。

JS- 上一个/下一个按钮

   <script>
$(function() {

var $tabs = $('#tabs').tabs();

$(".ui-tabs-panel").each(function(i){

var totalSize = $(".ui-tabs-panel").size() - 1;

if (i != totalSize) {
next = i + 2;
$(this).append("<a href='#' class='next-tab mover' rel='" + next + "'>Next Page &#187;</a>");
}

if (i != 0) {
prev = i;
$(this).append("<a href='#' class='prev-tab mover' rel='" + prev + "'>&#171; Prev Page</a>");
}

});

$('.next-tab, .prev-tab').click(function() {
$tabs.tabs('select', $(this).attr("rel"));
return false;
});


});
</script>

PHP/HTML

<select name="gender" id="gender" class="update" size="7"> 
<option value="">Select one</option>
<?php if (!empty($list)) { ?>
<?php foreach($list as $row) { ?>
<option value="<?php echo $row['id']; ?>">
<?php echo $row['category_name']; ?>
</option>
<?php } ?>
<?php } ?>
</select>

<select name="category" id="category" class="update" disabled="disabled" hidden="hidden" size="7">
<option value="">----</option>
</select>

<select name="colour" id="colour" class="update" disabled="disabled" hidden="hidden" size="7">
<option value="">----</option>
</select>

最佳答案

有一些解决方案(使用第二种解决方案,您仍然可以在不单击下一步按钮的情况下更改选项卡)。

1.) 如果选择了一个选项,您可以禁用第二个选项卡 ($('#tabs').tab({ disabled: [1] });) 并启用该选项卡例如通过添加以下更改 处理程序:

$('#gender').change(function() {
$('#tabs').tabs(
'option',
'disabled',
(parseInt($(this).val(), 10) > 0 ? [] : [1])
);
});

另见 this example .

2.) 您可以更新您的下一次点击处理程序;仅在选择性别时更改选项卡:

$('.next-tab, .prev-tab').click(function() {
if (parseInt($('#gender').val(), 10) > 0) {
$tabs.tabs('select', $(this).attr("rel"));
}
return false;
});

另见 this example .

3.) 添加一个选项卡选择处理程序,如果用户在第一个选项卡上并且没有选择性别,则返回false;使用 tab select 处理程序添加一个对象作为 tab 参数:

var iOldTab = 0;
var $tabs = $('#tabs').tabs({
select: function(event, ui) {
var bChange = (iOldTab != 0 || parseInt($('#gender').val(), 10) > 0);
if (bChange) {
iOldTab = ui.index;
}
return bChange;
}
});

另见 this example .


最后我更喜欢第一个解决方案,因为用户可以看到无法访问第二个选项卡(直到他选择性别)并且选择(启用选项卡)的结果将立即显示。

===更新===

好的,如果您有不同数量的选择(取决于先前选择的值),这里有一个替代(未经测试)的解决方案:

1.) 替换updateSelectBox.jsjQuery.getJSON的内容(真正的最后一个select会被标记):

// following line is added
$('.update').removeClass('last');
if (!data.error) {
obj.next('.update').html(data.list).removeAttr('disabled hidden');
} else {
// following line is changed
obj.addClass('last').nextAll('.update').attr({'disabled': true, 'hidden':true}).html('<option value="">----</option>');
}

2.) 调用禁用了 tab 2

的选项卡
$('#tabs').tab({ disabled: [1] });

3.) 添加以下选择更改处理程序:

$('.update').change(function() {
$('#tabs').tabs(
'option',
'disabled',
(
$(this).hasClass('last') &&
parseInt($(this).val(), 10) > 0 ?
[] :
[1]
)
);
});

关于javascript - Jquery UI 选项卡和选择框 - 下一个/上一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com