如何使用JQ打开和关闭复选框和单选按钮

时间:2009-03-27 07:48:19

标签: javascript jquery radio-button

我试图让它工作,但没有成功。我是js的真正菜鸟所以请在试图帮助我的时候牢记这一点。你必须为我拼写,因为我只是不明白所有这些代码发生了什么。

我有两件事我想努力工作。一个是一组单选按钮。这些按钮是一组意味着只能检查一个单选按钮。我对这些单选按钮的值是1或0,它们来自数据库。

这是我遇到的问题。我可以切换按钮并更改数据库中的val,但是当json从数据库中调用数据时,按钮没有更改给用户。例如:如果我将按钮A更改为true或已选中,则数据库中的val将更改为1.从该时刻开始查看该页面时,按钮A应反映该情况。此外,当用户检查B时,db val然后更改为0,按钮也应该反映出来。

我不明白的是如何切换实际按钮以反映数据库中的值。到目前为止,这是我的代码:

else if (item.field == "status" && item.value == "1"){
  $("radio#status").attr("checked", "checked");
}

<input type="radio" id="active" name="status" value="1" checked="checked" class="chkbx">
<input type="radio" id="inactive" name="status" value="0" class="chkbx">


这是我的第二个问题。复选框与单选按钮完全相同,但它们不是组。每个复选框都有自己的值。我再次使用0和1,但一次可以检查多个复选框。这也是代码。

else if (item.field == "rptDly" && item.value == "1"){
  $("checkbox#rptDly").attr("checked", "checked");
}

<input type="checkbox" id="rptDly" name="rptDly" value="1" checked="checked" class="chkbx">
<input type="checkbox" id="rptSum" name="rptSum" value="1" checked="checked" class="chkbx">
<input type="checkbox" id="rptDtl" name="rptDtl" value="1" checked="checked" class="chkbx">

有人可以指导我吗?当我在上面的js代码中发出警报时,我确实收到警报,所以我知道我很擅长,但因为我不知道js,我无法进一步解决这个问题。

编辑:

我找到了我正在重复的原帖。它是here

3 个答案:

答案 0 :(得分:2)

似乎你已经混淆了服务器上发生的事情,以及客户端上发生的事情。您要引用的项目对象是什么?

它也是标记#id,您在第一个代码示例中使用标记#name。

通常你编写的代码看起来有点像这样(取决于服务器端语言和框架):

<input type="checkbox" id="forreferencinginjavascriptandcss" name="tobesenttotheserver" value="1"<% if someboolean then print " checked=\"checked\"" %>>

请注意&lt;%和%&gt;之间的代码在向客户端发送任何内容之前,在服务器上运行。

如果您想在发送到浏览器后检查/取消选中radiobutton /复选框,您可以使用jQuery来执行此操作:

$("input#forreferencinginjavascriptandcss").attr("checked", true);

$("input#forreferencinginjavascriptandcss").attr("checked", false);

如果选中复选框,则会将name = value发送到服务器,如果未选中,则不会将任何内容发送到服务器。如果你想看看发送到哪里,我建议你google并下载Fiddler2。它可以作为一个http代理使用,让您可以直观地看到发送到服务器和从服务器发送的内容。

答案 1 :(得分:0)

您需要将javascript中的“checked”属性设置为true / false,而不是将字符串设置为“checked”。

checked="checked"是用于指定布尔属性的HTML约定。在javascript DOM中,这将转换为真正的布尔值

答案 2 :(得分:-1)

您用于jquery选择器的语法有点不对。

而不是......

$("checkbox#rptDly")

...访问复选框的语法是......

$("input:checkbox[name='rptDly']")

但是,由于每个复选框都有自己唯一的id属性,因此您只需使用...

$("#rptDly")

单选按钮有点棘手,因为它们都具有相同的名称或ID。这些必须通过value属性区分 - 将为此调查正确的解决方案并返回给您。

JQuery documentation website上了解您的JQuery选择器语法 或者购买a good book on the subject