【问题标题】:HTML Checkbox Click() Return FALSE or TRUE instead of READONLY or DISABLED using jQueryHTML Checkbox Click() 使用 jQuery 返回 FALSE 或 TRUE 而不是 READONLY 或 DISABLED
【发布时间】:2013-11-02 02:17:20
【问题描述】:

由于我没有足够的积分来发表评论,所以我必须提出一个问题。我所引用的情况可以在这里看到LINK。我保证在发布问题之前我已经搜索了几个小时。

我正在尝试将 HTML 复选框“切换”为只读。这是我到目前为止的位置。

  1. “禁用”不是一个选项。它不会与表格一起发布。
  2. “READONLY”并不是真正的只读。它可能会变灰,但仍然可以单击。
  3. 似乎唯一有效的是LINK 所指的内容,即对复选框应用READONLY,然后是一些jQuery,例如: $(':checkbox[readonly=readonly]').click(function(){return false;});$(':checkbox[readonly=readonly]').click(function(){return true;});
    • 我还搞砸了交换类,以防只读属性受到限制。

问题是无论第一个设置变成什么(TRUE 或 FALSE),它都会保持原样,直到页面被刷新。我不能通过运行另一个语句返回相反的结果(FALSE 或 TRUE)来重新启用复选框。

问题

  1. 有没有一种方法可以切换 .click 事件的 RETURN(TRUE 或 FALSE)?
  2. 是否有另一种方法可以切换选中复选框的功能?

非常感谢。

【问题讨论】:

  • 始终使用.change() 处理复选框事件
  • .change() 无关紧要。这是需要禁用的 .click() 功能,而无需实际禁用表单的复选框。

标签: javascript jquery html checkbox toggle


【解决方案1】:

jsFiddle DEMO

如果您想在return false;return true; 之间切换,您可以使用.change() 事件并提出特定条件进行切换。

$(':checkbox[readonly=readonly]').change(function () {
    if($(this).is(':checked'))
        console.log("return false");
    else
        console.log("return true");
});

【讨论】:

  • 感谢您回复克里希纳,但这并不是我真正要问的。此解决方案从特定复选框返回真/假值。这是需要禁用的单击事件,因此用户无法选中该复选框。如果您添加 disabled 属性,该复选框将不会随表单一起发布,并且 readonly 不会执行任何操作。
【解决方案2】:

好的,终于想通了。我会尽量让我的观点井井有条。

  1. 包括jquery-ui.js,不知道为什么,但它需要它。
  2. 使用 .change() 事件添加和删除指定 READ/WRITE 的两个类
  3. 使用$('.ReadClass').bind('click',false); 防止检查
  4. 使用$('.ReadClass').unbind('click', false); AND 切换类 AND$('.WriteClass').bind('click',true);添加到启用检查

Here is a link to my jsFiddle demo. 演示循环遍历所有指定的表单元素以切换用户输入数据的能力。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2020-11-28
    • 2017-09-24
    • 2015-02-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多