【问题标题】:Jquery - .prop not checking my input checkbox dynamicallyJquery - .prop 没有动态检查我的输入复选框
【发布时间】:2016-01-21 01:59:31
【问题描述】:

我有一个简单的数据表,其中添加了您可以选择的复选框。我有一个编辑按钮,可以显示数据的详细信息。我已经设置好了,每次你点击编辑时,它都会从 ajax 中提取数据并相应地填充它的字段和复选框。

我遇到的问题主要是复选框。目前我的保存功能运行良好。我使用下面的代码来确定复选框是否被选中,并在我的数据库中返回 true 或 false。

Candidat_gestion_de_problème: $("#Candidat_gestion_de_problème").prop( "checked" ) 

问题在于以下代码,当我点击编辑按钮时,它会从数据库中提取数据:

$("#Candidat_gestion_de_problème").prop( "checked", incident.Candidat_gestion_de_problème );

注意:event.Candidat_gestion_de_problème 返回 truefalse。我在我的控制台中对它们进行了测试,这正是它吐出来的。

在某些情况下,即使数据库返回 false,.prop 似乎也会忽略并选中复选框。

当我在控制台中手动执行相同的代码时,它工作正常:

$("#Candidat_gestion_de_problème").prop( "checked", false );

有人知道它为什么会这样做吗?

【问题讨论】:

  • 你有多个相同id的复选框
  • 不只是用一个复选框进行测试
  • 你能试试 $("#Candidat_gestion_de_problème").prop( "checked", event.Candidat_gestion_de_problème == true ? true : false);
  • 似乎没有什么不同。控制台上也没有错误。
  • 我目前正在通过 ajax 成功调用。

标签: javascript jquery html


【解决方案1】:

SadiRubaiyet 有一个有趣的方法,但稍微调整了一下就奏效了:

$("#Candidat_gestion_de_problème").prop( "checked", incident.Candidat_gestion_de_problème == "true" ? true : false );

我希望避免使用这种方法,但目前看不到解决方法。谢谢大家的帮助。

【讨论】:

  • 哦,所以您没有使用实际的布尔原语 true/false,而是使用字符串表示。那就是非空字符串是真实的问题,这就是为什么当值为"false"时它保持检查状态
  • 是的,这很奇怪,我期待它返回布尔原语 true/false 值。但是按照我的设置方式,它似乎并不喜欢那样。但现在还好。
  • 您不需要三元运算符。只需使用.prop(checked, incident.Candidat_gestion_de_problème == "true")
  • 更改设置incident.Candidat_gestion_de_problème 的代码可能会更好,因此将其设置为布尔值而不是字符串。
猜你喜欢
  • 2014-04-26
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
  • 2020-02-08
  • 1970-01-01
相关资源
最近更新 更多