我已经尝试了所有可能的方法,但我仍然没有得到它的工作.我有一个模态窗口,checkbox我希望当模态打开时,checkbox检查或取消选中应该基于数据库值.(我已经与其他表单字段合作了.)我开始尝试检查但是它不起作用.
我的html div:
<div id="fModal" class="modal" >
...
<div class="row-form">
<div class="span12">
<span class="top title">Estado</span>
<input type="checkbox" id="estado_cat" class="ibtn">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和jquery:
$("#estado_cat").prop( "checked", true );
Run Code Online (Sandbox Code Playgroud)
我也尝试过attr,在论坛上看到的其他人,但似乎没有工作.有人能用正确的方式指出我吗?
编辑:好吧,我真的错过了这里的东西...如果复选框在页面中,我可以使用代码检查/取消选中,但它是在模态窗口中,我不能.我尝试了几十种不同的方式......
我有一个应该打开模态的链接:
和jquery"监听"点击并执行一些操作,比如用来自数据库的数据填充一些文本框.一切都像我想要的那样,但问题是我无法使用代码设置复选框选中/取消选中.请帮忙!
$(function() {
$(".editButton").click(function(){
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "process.php",
dataType:"json",
data: { id: id, op: "edit" },
}).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
$("#nome_categoria").val( data['nome_categoria'] );
$("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
$("#estado_cat").prop("checked", true);
$('#fModal').modal('show');
});
evt.preventDefault();
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
小智 753
你必须使用'prop'功能:
.prop('checked', true);
Run Code Online (Sandbox Code Playgroud)
在jQuery 1.6之前(参见user2063626的回答):
.attr('checked','checked')
Run Code Online (Sandbox Code Playgroud)
小智 74
获取所有建议的答案并将其应用于我的情况 - 尝试检查或取消选中基于检索到的值为true的复选框(应选中复选框)或false(不应选中复选框) - 我尝试了以上所有内容发现使用.prop("checked",true)和.prop("checked",false)是正确的解决方案.
我还不能添加评论或答案,但我觉得这非常重要,可以添加到对话中.
以下是完整日历修改的longhand代码,该代码表示如果检索到的值"allDay"为true,则选中ID为"even_allday_yn"的复选框:
if (allDay)
{
$( "#even_allday_yn").prop('checked', true);
}
else
{
$( "#even_allday_yn").prop('checked', false);
}
Run Code Online (Sandbox Code Playgroud)
小智 54
老兄尝试下面的代码:
$("div.row-form input[type='checkbox']").attr('checked','checked')
Run Code Online (Sandbox Code Playgroud)
要么
$("div.row-form #estado_cat").attr("checked","checked");
Run Code Online (Sandbox Code Playgroud)
要么
$("div.row-form #estado_cat").attr("checked",true);
Run Code Online (Sandbox Code Playgroud)
Key*_*OfJ 17
由于您处于模态窗口(无论是动态的还是在页面中),您可以使用以下代码来实现您的目标:(我在我的网站上遇到了同样的问题,这就是我修复它的方法)
HTML:
<div class="content-container" style="text-align: right;">
<input type="checkbox" id="QueryGroupCopyQueries">
<label for="QueryGroupCopyQueries">Create Copies</label>
</div>
Run Code Online (Sandbox Code Playgroud)
码:
$.each(queriesToAddToGroup, function (index, query) {
if (query.groupAddType === queriesGroupAddType.COPY) {
// USE FIND against your dynamic window and PROP to set the value
// if you are using JQUERY 1.6 or higher.
$(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);
return;
}
Run Code Online (Sandbox Code Playgroud)
在上面的"kendoWindow"是我的窗口(我的是动态的,但是当我直接在页面中附加元素时也会这样做).我循环遍历数据数组("queriesToAddToGroup")以查看是否有任何行具有COPY属性.如果是这样,我想打开窗口中的复选框,该复选框在用户从此窗口保存时设置该属性.
小智 17
"checked"属性会在复选框存在时立即"勾选"该复选框.因此,要选中/取消选中复选框,您必须设置/取消设置属性.
选中框:
$('#myCheckbox').attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)
取消选中此框:
$('#myCheckbox').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
用于测试检查状态:
if ($('#myCheckbox').is(':checked'))
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你...
Yun*_*Gun 11
我知道这需要一个 Jquery 解决方案,但我只是想指出,在普通的 javascript 中切换它非常容易。
var element = document.getElementById("estado_cat");
element.checked = true;
Run Code Online (Sandbox Code Playgroud)
它将适用于所有当前和未来版本。
小智 10
.attr("checked",true)
.attr("checked",false)
Run Code Online (Sandbox Code Playgroud)
会工作.确保真假不在引号内.
你可以写下面给出的代码.
HTML
<input type="checkbox" id="estado_cat" class="ibtn">
Run Code Online (Sandbox Code Playgroud)
jQuery的
$(document).ready(function(){
$(".ibtn").click(function(){
$(".ibtn").attr("checked", "checked");
});
});
Run Code Online (Sandbox Code Playgroud)
希望它对你有用.
如果您想将此功能用于 GreaseMonkey 脚本以自动选中页面上的复选框,请记住,仅设置 checked 属性可能不会触发相关操作。在这种情况下,“单击”复选框可能会(并设置 checked 属性)。
$("#id").click()
Run Code Online (Sandbox Code Playgroud)
<body>
<input id="IsActive" name="IsActive" type="checkbox" value="false">
</body>
<script>
$('#IsActive').change(function () {
var chk = $("#IsActive")
var IsChecked = chk[0].checked
if (IsChecked) {
chk.attr('checked', 'checked')
}
else {
chk.removeAttr('checked')
}
chk.attr('value', IsChecked)
});
</script>
Run Code Online (Sandbox Code Playgroud)