将复选框的已检查状态链接到文本框的值

时间:2014-04-14 01:47:01

标签: javascript jquery sql

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

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

问题是if语句适用于用户选择的先前值。因此,即使文本框值是最新的,它也始终只需单击一下即可。虽然文本框的值在表单上是最新的,但当我创建一个显示文本框值的警告框时,它也落后了。所以if语句没问题,它只是使用文本框的前一个值而不是当前值。有什么办法让这个当前?

2 个答案:

答案 0 :(得分:0)

您的if声明未测试#textbox实际设置值的值。

尝试将if语句更改为:

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

这是另一个可能有帮助的SO post

答案 1 :(得分:0)

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

$('#textbox').val("TRUE")您正在做的是将文本框的值设置为 TRUE

因此,每当您的代码块执行时,您最终都会选中复选框,并使用 TRUE 值的文本框。

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

  

$(' #mycheckbox')。prop(' checked',$(' #textbox')。val()==" TRUE& #34)

<强>更新

正如您所说,您在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");
});

回复基于猜测。