【问题标题】:JQuery Mobile 1.4.5 radio control group breaks after back button is pressed按下后退按钮后 JQuery Mobile 1.4.5 无线电控制组中断
【发布时间】:2015-01-03 06:53:04
【问题描述】:

我最近从 JQM 1.4.2 升级到 1.4.5,但是这样做给我带来了一个新错误。我在一个面板中有一个搜索选项,该选项显示在每个具有无线电控制组的页面上:

<fieldset data-role="controlgroup">
    <input type="radio" name="choiceActiveCont" id="choiceActiveCont" value="choiceActiveCont" checked="checked">
     <label for="choiceActiveCont">Active Contracts</label>
     <input type="radio" name="choiceActiveCont" id="choiceAllCont" value="choiceAllCont">
     <label for="choiceAllCont">All Contracts</label>
</fieldset>

这一直很好用。但是,如果我在页面之间导航,然后按后退按钮,这个控制组就完全坏了:

有人对这里可能出现的问题有任何想法吗?谢谢

【问题讨论】:

  • 如果相同的代码在 1.4.2 上可以正常工作,则应该报告 1.4.5 中的错误。
  • 好的。你知道我可以在哪里报告错误吗?
  • github.com/jquery/jquery-mobile/issues 确保提供包含所有详细信息的完整演示。
  • 谢谢我已经报告了...有什么解决办法吗?
  • 确保在每个页面中,您使用唯一的 ID 作为输入和相应的标签。

标签: javascript jquery css jquery-mobile radio-button


【解决方案1】:

已解决 - 问题出在复选框的 ID 上。 JQM 更改了在修复另一个错误时识别复选框标签的方式。识别复选框标签的新方法与规范一致,但这也意味着他们在整个文档中搜索属于给定复选框的第一个标签。因此,他们将获取第一个标签,即使该标签位于不同的 jQM 页面上。

为了解决这个问题,我完全避免使用 ID。如果

的子级

所以,

<label><input type="checkbox" name="something">Something</label>

可以使用,并且不需要 ID。

*感谢 JQM 错误团队的回答!我希望这可以帮助其他有同样问题的人。

【讨论】:

  • 为什么不使用外部面板?因为您对所有页面使用相同的面板。更少的代码。
  • 那么代码不应该中断,除非您在面板和其他地方使用了相同的 ID ;)
猜你喜欢
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多