0

我正在尝试使用 jQuery 设置复选框的选中属性,jQuery 代码工作正常,但我在代码隐藏中遇到了问题:

particular.click(function () {
    company.removeAttr('checked');
    particular.attr('checked', 'true');
});

公司和特别是复选框的名称,jQuery 代码工作正常,我的问题出在代码隐藏(.cs 文件)

if (particular.Checked)
{
    company_name_blank.EnableClientScript = false;
    cif_blank.EnableClientScript = false;
}

这不起作用,因为 Checked 属性设置为 false 而实际上我将其设置为 true,正如您在 jQuery 代码中看到的那样,那么错误在哪里?为了获得更多解释,我试图根据选中的复选框禁用一些RequiredFieldValidators,但正如我所说,除非我在元素Checked = true或specification.Checked中将其默认设置为true,否则Checked属性始终设置为false =true 在代码隐藏文件中,但这不是我想要的。当我单击复选框时,我想将 Checked 属性设置为 true,这就是我使用 jQuery 的原因。

更新

我的代码

protected void Page_Load(object sender, EventArgs e)
{ 
   if (particular.Checked) 
   { 
      company_name_blank.EnableClientScript = false;
      cif_blank.EnableClientScript = false;
      contact_name_blank.EnableClientScript = false;  
      contact_cognames_blank.EnableClientScript = false;
    }
} 
4

2 回答 2

1

尝试使用 :checked 过滤器

particular.is(':checked')
于 2013-07-26T09:41:56.247 回答
0

在您的网站中,您将有一个这样的按钮:

<asp:Button runat="server" ID="btnClick" OnClick="btnClick_Click" Text="Click here" />

在你后面的代码中,你应该有这样的东西:

protected void btnClick_Click(object sender, EventArgs e)
{
    if (particular.Checked) 
    { 
      company_name_blank.EnableClientScript = false;
      cif_blank.EnableClientScript = false;
      contact_name_blank.EnableClientScript = false;  
      contact_cognames_blank.EnableClientScript = false;
    }
}

您可以删除 Page_Load 中的代码并将其移动到按钮单击功能

更新 - 问题的正确解决方案

正确的解决方案是使用 ValidationEnable Javascript 函数来禁用/启用RequiredFieldValidators。

此解决方案的代码:

var emailEmpty = $("#registerContent").find('[id$=email_blank]'); //This is a jQuery object
ValidationEnable(emailEmpty[0], false); //This will disable the validator.

我们使用“[0]”的原因是因为我们需要 jQuery 对象内部的 DOM 元素(参见:http://api.jquery.com/get/?rdfrom=http%3A%2F%2Fdocs.jquery。 com%2Fmw%2Findex.php%3Ftitle%3DCore%2Fget%26redirect%3Dno )

于 2013-07-26T09:54:46.090 回答