【问题标题】:checkbox become unchecked复选框变为未选中
【发布时间】:2012-06-25 13:44:41
【问题描述】:

我有这种情况:http://jsfiddle.net/bRDgK/3/

在这种情况下,我有一个带有复选框的模式对话框。当用户点击复选框时,应该会出现一个新的模式对话框,并且应该选中复选框。由于某些原因,该复选框未选中。知道为什么吗?

【问题讨论】:

    标签: jquery jquery-ui checkbox dialog jquery-ui-dialog


    【解决方案1】:

    适用于onchange

    演示:http://jsfiddle.net/bRDgK/10/

    其他发现

    模态似乎是问题所在。模式弹出并干扰点击事件。关闭模式所有工作正常跨浏览器。建议检查 jQueryUI 论坛和/或报告错误

    【讨论】:

    • 当我尝试你的 jsfiddle 代码时,它仍然没有选中按钮。我试过 FF、IE 和 Chrome,似乎没有人工作
    • 什么浏览器,在 FF 中运行良好。绝对是个奇怪的东西
    • 这应该也适用于点击,而不仅仅是变化。在我的代码中,onchange 仅在我退出复选框(IE8)时适用。我需要 onclick 解决方案。我也在使用 IE8。
    • 查看我关于模态的附加说明
    • 请看我的回答。如果您对此解决方案有任何解释 - 我会很高兴:)
    【解决方案2】:

    我真的不明白为什么,但是如果我在打开子模式之前取消事件气泡(取消 firefox 的事件传播) - 复选框保持选中状态。

    这是示例(仅在 IE 上工作,因为内联 onclick 事件和 window.event 用法):http://jsfiddle.net/bRDgK/16/

    知道这是如何解决问题的吗??

    【讨论】:

      【解决方案3】:

      我让它同时适用于 Firefox 和 IE8。

      http://jsfiddle.net/executorjs/qevfZ/5/

      我对 doSomething 函数进行了更改:

      $(this).find("#ee").dialog("open");
      

      还改变了一些html的位置:

      <div id="rrr">
          <input type="checkbox" id="dd" onclick="doSomething();" />
      </div>
      <div id="ee"></div>
      

      【讨论】:

      • 您没有使用 UI css,因此没有激活模式。没有模式它可以工作,以及修复我在第一个版本中所做的不正确的嵌套
      • $(this).find("#ee") 返回空 jquery 对象,因此 $(this).find("#ee").dialog("open");什么都不做。
      • 请看我的回答。如果您对此解决方案有任何解释 - 我会很高兴:)
      猜你喜欢
      • 1970-01-01
      • 2021-02-26
      • 2021-12-16
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多