Javascript Jquery-.prop不动态检查我的输入复选框

Javascript Jquery-.prop不动态检查我的输入复选框,javascript,jquery,html,Javascript,Jquery,Html,我有一个简单的数据表,我在其中添加了复选框,您可以选择。我有一个编辑按钮,可以显示数据的详细信息。我已经设置好了它,这样每当你点击edit,它就会从ajax中提取数据,并相应地填充字段和复选框 我遇到的问题主要是复选框。目前,我的保存功能运行良好。我使用下面的代码来确定复选框是否被选中,并在我的数据库中返回true或false Candidat_gestion_de_problème: $("#Candidat_gestion_de_problème").prop( "checked" )

我有一个简单的数据表,我在其中添加了复选框,您可以选择。我有一个编辑按钮,可以显示数据的详细信息。我已经设置好了它,这样每当你点击edit,它就会从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 );
注意:事件。候选资格评估报告返回true或false。我让他们在我的控制台上测试,结果就是它吐出来的

在某些情况下,即使数据库返回false,.prop似乎会忽略并保持复选框处于选中状态

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

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

有人能理解它为什么会这样做吗?

好吧,Sadirubayet有一个有趣的方法,但稍微调整了一下,就成功了:

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

我希望避免这种方法,但目前还没有找到解决的办法。谢谢大家的帮助。

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

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


我希望避免这种方法,但目前还没有找到解决的办法。谢谢大家的帮助。

您是否有多个相同ID的复选框不只是使用单个复选框进行测试您能否尝试$candidate_gestion_de_probleème.prop checked,incident.candidate_gestion_de_probleème==true?真:假;似乎没有什么不同。控制台上也没有错误。我现在通过ajax在一个成功调用中执行此操作。您是否有多个具有相同ID的复选框不使用单个复选框进行测试您能否尝试$candidate_gestion_de_problème.prop checked,incident.candidate_gestion_de_problème==true?真:假;似乎没有什么不同。控制台上也没有错误。我现在通过ajax在一个成功调用中执行此操作。哦,所以您使用的不是实际的布尔基元true/false,而是字符串表示。这就是非空字符串的真实性问题,这就是为什么当值为false时,它保持选中状态是的,这很奇怪,我希望它返回布尔基元true/false值。但以我的设置方式,它似乎不喜欢这样。但是现在还可以,你不需要三元运算符。只需使用.propchecked,incident.candidate_gestion_de________________ème==truet可能最好更改设置incident.candidate__________ème的代码,以便将其设置为布尔值,而不是字符串。哦,所以您使用的不是实际布尔基元true/false,而是字符串表示。这就是非空字符串的真实性问题,这就是为什么当值为false时,它保持选中状态是的,这很奇怪,我希望它返回布尔基元true/false值。但以我的设置方式,它似乎不喜欢这样。但是现在还可以,你不需要三元运算符。只需使用.propchecked,incident.candidate_gestion_de_probleème==true可能最好更改设置incident.candidate_gestion_de_probleème的代码,以便将其设置为布尔值而不是字符串。