【问题标题】:Checkbox not being checked when running function运行功能时未选中复选框
【发布时间】:2010-03-08 05:31:08
【问题描述】:

我有一个复选框,当它被单击时,它会将表单提交到服务器以存储详细信息。一切正常,除了在提交表单后我更新了一个 div 说已提交但未选中复选框。页面当然不会刷新,页面刷新时会打勾。

我认为我可以在使用 jQuery 时自己选中该框,但是我有很多这些复选框,每个复选框都有一个动态名称,所以我不确定如何称呼它们。我的想法是这样的:

$('input[name=("favourite" + id)]').attr('checked', true);

可能会工作,但没有运气。如果我不调用被勾选的复选框上的函数,则复选框的行为正常。

感谢您提供任何帮助。

【问题讨论】:

  • 你没有提供所有的细节,所以我将赌注押在 2 号门上,并猜测你在该字段的 ID/名称中有错字。也许像“-”而不是“_”这样简单的东西。一直发生在我身上。
  • 刚刚检查过,我使用类似的东西检索复选框的值 document.getElementsByName("favourite" + id) 所以我不认为就是这样。如果您愿意,我可以发布更多代码,但我认为它只会让人们感到困惑。试想我可以通过以某种方式修复已发布的行来解决它。我在 $('#msg' + id).html("Submitted") 下方执行此操作,效果很好。

标签: javascript jquery checkbox


【解决方案1】:

你应该打破你的字符串,以便将id 变量的值引入你的选择器,你可以这样做:

$('input[name="favourite' + id + '"]').attr('checked', true);

【讨论】:

    【解决方案2】:

    尝试做

    $('input[name=("favourite" + id)]').checked = true;
    

    改为。

    问题可能是设置属性不会被浏览器自动解释为更改 DOM 属性。这有点令人困惑,但是在 Firefox 等浏览器上,HTML 属性和 DOM 属性是分开存储的(大多数名称相同,但也有例外 - 例如 class 属性由 className 属性表示) .

    更改属性会影响元素的行为,而属性并不总是具有相同的效果 - 在某些浏览器上,它们仅在初始渲染期间进行解析。

    【讨论】:

    • 还有 $('input[name=("favourite" + id)]').attr('checked','checked');可能会给您更好的结果,因为选中的属性应该是一个字符串。但是我的上述方法更一致。
    猜你喜欢
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2017-12-10
    • 2016-07-20
    • 2019-03-13
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多