我试图让它工作,但没有成功。我是 js 的真正菜鸟,所以在尝试帮助我时请记住这一点。你必须为我把它拼出来,因为我还不明白所有这些代码都发生了什么。
我有两件事想着手去做。一个是一组单选按钮。这些按钮是一组,意味着只能选中一个单选按钮。这些单选按钮的值是 1 或 0,并且来自数据库。
这是我遇到的问题。我可以切换按钮并更改数据库中的 vals,但是当 json 从数据库中调用数据时,用户的按钮没有变化。例如:如果我将按钮 A 更改为 true 或选中,则数据库中的 val 更改为 1。从那一刻起查看该页面时,按钮 A 应该反射(reflect)这一点。此外,当用户选中 B 时,db val 将更改为 0,按钮也应反射(reflect)这一点。
我不明白的是如何切换实际按钮以反射(reflect)数据库中的值。到目前为止,这是我的代码:
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 .
最佳答案
看来您混淆了服务器上发生的事情和客户端上发生的事情。您指的是什么项目对象?
它也是 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 将被发送到服务器,如果未被选中,则不会向服务器发送任何内容。如果您想查看发送到哪里的内容,我建议您用谷歌搜索并下载 Fiddler2。它可以用作 http 代理,让您可以准确地看到发送到服务器和从服务器发送的内容。
关于javascript - 如何使用 JQ 打开和关闭复选框和单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688865/