繁体   English   中英

将复选框的选中状态链接到文本框的值

[英]Linking checkbox's checked state to a value of a textbox

想知道如何将复选框的选中状态链接到从sql查询返回的文本字段上的值。 用户从表单上的选择/菜单中选择一个值后,将更新文本框值。 选择菜单选项的值用作查询中的过滤器,效果很好。

if ($('#textbox').val("TRUE")
    { $('#mycheckbox').prop('checked',true);}
else
    {
     $('#mycheckbox').prop('checked',false);
   }

问题在于if语句适用于用户选择的先前值。 因此,即使文本框值是最新的,它也总是落后一格。 尽管文本框的值是窗体上的当前值,但是当我创建一个显示文本框值的警报框时,它也位于后面。 因此,如果if语句正常,则仅使用文本框的上一个值而不是当前值。 有什么办法使这种潮流?

if您的陈述并未测试#textbox的值,则实际上是在设置值。

尝试将您的if语句更改为:

if ($('#textbox').val() == "TRUE")

这是另一条可能有帮助的帖子

首先,假设这是一个错字,您的代码中就有语法错误。

$('#textbox').val("TRUE")所做的工作是将textbox的值设置为TRUE

因此,无论何时执行代码块,您都将选中复选框,文本框为TRUE值。

如果您的目标是根据文本框的值更新复选框。 当您实际设置/更新文本框的值时,可以输入以下一行代码而不是四行代码。

$('#mycheckbox')。prop('checked',$('#textbox')。val()==“ TRUE”)

更新资料

正如您提到的那样,您是在ajax调用之后设置新值的,并且没有包含您的代码示例,我想您的代码是这样的:

$.ajax({
  url: "your/url"
}).done(function(data) {
  $('#textbox').val(data)
});

如果是这样,请将您的代码更新为

$.ajax({
  url: "your/url"
}).done(function(data) {
  $('#textbox').val(data);
  $('#mycheckbox').prop('checked',$('#textbox').val() == "TRUE");
});

响应基于猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM