2

我试图让它发挥作用,但没有成功。我是一个真正的 js 菜鸟,所以在尝试帮助我时请记住这一点。您必须为我拼写出来,因为我只是不明白所有这些代码正在发生什么。

我有两件事要努力。一个是一组单选按钮。这些按钮是一组,意味着只能选中一个单选按钮。这些单选按钮的值是 1 或 0,并且来自数据库。

这是我遇到的问题。我可以切换按钮并更改数据库中的值,但是当 json 从数据库中调用数据时,用户的按钮没有变化。例如:如果我将按钮 A 更改为 true 或选中,则 db 中的 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,所以我无法进一步解决这个问题。

编辑:

我找到了我正在复制的原始帖子。它就在这里

4

3 回答 3

2

您似乎混淆了服务器上发生的事情和客户端上发生的事情。您指的是什么项目对象?

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

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

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

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

如果您想在发送到浏览器后选中/取消选中单选按钮/复选框,可以使用 jQuery 来完成:

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

或者

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

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

于 2009-03-27T08:00:22.527 回答
0

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

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

于 2009-03-27T09:11:45.523 回答
-1

您用于 jquery 选择器的语法有点错误。

代替...

$("checkbox#rptDly")

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

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

但是,由于每个复选框都有自己独特的 id 属性,您可以简单地使用...

$("#rptDly")

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

在JQuery 文档网站上复习您的 JQuery 选择器语法 或者购买一本关于该主题的好书

于 2009-03-27T08:21:10.917 回答