【问题标题】:Checkbox display is not changing with jquery复选框显示不随 jquery 改变
【发布时间】:2012-01-02 21:43:10
【问题描述】:

我有一些值从子表单回传到父表单并触发此方法

function OnClientClose(oWnd, args) {
    //get the transferred arguments
    var arg = args.get_argument();
    if (arg) {
        var agreementId = $find("<%= rtxtAgreementId.ClientID %>");
        var legacyReinsurerId = $find("<%= rtxtlegacyReinsurerId.ClientID %>");

        agreementId.set_value(arg.ReinsuranceAgreementId);
        legacyReinsurerId.set_value(arg.LegacyReinsurerId);
        $("<%= chkCommutationFlag.ClientID %>").prop("checked", Boolean(arg.CommutationFlag));
    }
};

所有参数都具有正确的值,包括 Boolean(arg.CommutationFlag),因为我通过在文本框中显示值进行了测试,但我的复选框显示值没有改变。我尝试了各种方法来设置复选框值,并且它们都在没有抛出错误的情况下进行处理,但复选框仍未选中。我错过了什么?

【问题讨论】:

  • 也许这听起来很愚蠢,但OnClientClose 是什么事件?您是否在使用任何第三方组件,例如 Telerik?
  • 是的,是 RadWindow on close 事件处理程序。我的值使用 set_value 方法在文本框中显示得很好。我只是无法让 chdckbox 更改状态。
  • 您使用的是什么版本的 jQuery? .prop 是在 1.6 中添加的。
  • 1.6.1.我确实尝试过道具。它似乎工作,但显示没有正确显示

标签: c# jquery asp.net telerik


【解决方案1】:

首先检查你是否真的击中了目标,用一些普通的 css 替换 prop 来查看复选框是否改变了外观。 如果没有,您的 ID 是错误的,请记住您需要在 ID 前加上#。 如果它确实发生了变化,请将您的布尔值替换为实际的单词“true”,如果这样可以解决它,那么您的布尔值是错误的,并且可能是其中一个。

只是为了确保您可以在复选框代码的正上方放置一个警报,以查看您的脚本是否已经完成,但是如果控制台没有显示错误,并且如果 css 方法有效,那就不是了。

【讨论】:

  • 太好了,那么通过消除过程你就知道问题出在哪里了。我假设它在您的 jQuery 函数中使用实际 ID 和实际单词“true”?
  • 使用 $("#DataEntry1_chkCommutationFlag").prop("checked", true);该值在方法完成时设置。调试的 jquery 代码缺少 # $("DataEntry1_chkCommutationFlag").prop("checked", Boolean(arg.CommutationFlag));谢谢我忽略了。
猜你喜欢
  • 2013-05-23
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多