为什么这个选择菜单在jQuery和JQM的新版本组合中失败
Why does this select menu fail in new version combo of jQuery and JQM?
想要
扩展此代码,但注意到它无法限制较新版本的jQuery和JQM中的选择(按计数(。
这是一个小提琴,表明它适用于jQuery 1.8.3和JQM 1.2.0。
jQuery(减去选择本身(代码在这里:
$(document).on("pageinit", function () {
$("#select").on("change", function () {
var selected = $("option:selected", this).length;
if (selected == 4) {
$("option:not(:selected)", this).prop("disabled", true);
$(this).selectmenu("refresh");
}
if (selected < 4) {
$("option:disabled", this).prop("disabled", false);
$(this).selectmenu("refresh");
}
arr = new Array();
$(this).find("option:selected").each(function(index, item) {
arr.push($(item).val());
console.log(arr);
});
});
});
您可以通过切换到 jQuery 1.11.0 和 JQM 1.4.4 来模拟小提琴中的故障。
然后,选择应该阻止但允许的第 5 个选项。
我错过了什么会导致新版本失败?
PS:任何指向使用 $.ajax GET 填充选择框的最佳方法的指针也值得赞赏,因为这将是我的下一步。我正在使用 POST 来保存选择,但希望在需要更新时向用户显示他们已经保存的内容。
您必须将true
作为第二个参数传递给selectmenu
函数,以强制它在禁用该选项后刷新菜单。检查这个小提琴
$(this).selectmenu("refresh", true);
相关文章:
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- 浏览器兼容性/支持较新版本
- 如何在较新版本的 Free-JQGard 中重置搜索工具栏和搜索过滤器
- 如何用新版本的因果报应取代被弃用的吞咽因果报应
- npm安装can'找不到新版本
- 为什么获胜't客户端在公用文件夹中接收此脚本的新版本
- 获取模板是用我的Node.JS应用程序的新版本Handlebars错误预编译的
- 上载图像的新版本并避免缓存
- 如何避免被大量的框架和新版本的JavaScript淹没
- 推出新版本的JavaScript,css和图形内容,使用ASP .NET MVC
- 无法将 Slickgrid 的标头与 Jquery 新版本分组
- 谷歌分析 - 旧版本和新版本有什么区别
- 为什么这个选择菜单在jQuery和JQM的新版本组合中失败
- 一个函数,它接受回调并创建只能调用一次的新版本的回调.Javascript
- Splitter.js 不适用于新版本的 jQuery
- Breezejs新版本'的合并实体功能
- Javascript:检测是否缓存了请求的文件,如果存在较新版本,则删除缓存
- 一些jquery插件不适用于新版本的jquery库
- 谷歌地图缩放滚动条不会出现在新版本中
- 从不同范围访问较新版本的变量(JavaScript / jQuery)