Jquery 1.7复选框并选中

时间:2012-06-04 09:45:03

标签: jquery jquery-ui checkbox

我使用这个

 jQuery($("select[id='Input"+id+"OdbcParamsId']")).toggle();

我切换选择框。 如果真的选中了复选框,我会在加载页面后尝试检查: 一种选择:

 if($( "checkbox[id='Input_" + id+"Isquery_'").attr('checked', 'checked')){....}

第二个选项:

if $( "checkbox[id='Input_" + id+"Isquery_'").is(':checked')) {....}

然而两者都不起作用。尽管我输入的方式是来自谷歌的研究员。 然后我的工作选项是:

$( "#Input_" + id+"Isquery").is(":checked") {...}

现在最让人眼花缭乱的是,它并没有正确地触发事件以下的最终代码:

alert($( "#Input_" + id+"Isquery").is(":checked"));
if (!$( "#Input_" + id+"Isquery").is(":checked")){
    jQuery($("select[id='Input"+id+"OdbcParamsId']")).toggle();
}

正如你所看到的那样,事件切换真的有效,选择器没有。 我是JQuery的新手,我不明白为什么。我们是否必须为不同的事件和方法使用不同的选择器?请有人解释一下。 谢谢。 的 [编辑]: ** [HTML CODE] **

<td><div class="input checkbox"><input type="hidden" name="data[Input_41][isquery]" id="Input_41Isquery_" value="0"/><input type="checkbox" name="data[Input_41][isquery]"  class="chks" onclick="jqOnOffInputFormDbToggle(41)" options="True False (choose one)" value="1" id="Input_41Isquery"/><label for="Input_41Isquery"></label></div></td>
<td><select name="data[Input][41][odbc_params_id]" id="Input41OdbcParamsId">
<option value="">(choose)</option>
<option value="52">PGSQL1</option>
</select></div></td>

我不得不说用show / hide替换toggle()确实可以解决问题。 但选择器的东西对我来说有点尴尬

4 个答案:

答案 0 :(得分:2)

最大的问题是选择器以“复选框”开头无效,没有tagName“复选框”。有一个jQuery选择器“:checkbox”,但你的第一个“如果”使用attr('checked','checked')也没有正确设置。

最后一个解决方案是最有效的,因为使用ID选择器是最有效的处理方式,而不是$('tagName [attribute =“value”]')并且更容易阅读

编辑:编写完成后添加了更多代码

按照我的“ID选择器最好”,更改:

   jQuery($("select[id='Input"+id+"OdbcParamsId']")).toggle();

要:

 jQuery('#Input'+id+'OdbcParamsId').toggle();

使用“jQuery”或“$”但混合它们会让你感到困惑,它们是同一件事

答案 1 :(得分:0)

切换说:

select[id=Input+id+"OdbcParamsId']"]

,选择器说:

select["#Input_"+id+"Isquery"]

那么,是输入还是输入_

答案 2 :(得分:0)

首先,看起来你误解了jQuery选择器是如何工作的,我强烈建议你立即阅读the jQuery tutorial

其次,你对toggle的使用并不是它应该用于的方式;也许它有效,但不是这样做的,实际上toggleevent binding function

现在,我假设你至少使用jQuery 1.6,如果没有,可能以下代码不起作用。


获取复选框的值(true的布尔false):

$("#input_id").prop("checked");

要修改复选框(标记为已选中,请将值更改为false以取消选中):

$("#input_id").prop("checked", true);

获取select的值(即所选选项的值):

$("#select_id").find("option:selected").value();

修改选择的值:

$("#select_id").val("option_value");

这里有JsFiddle with some examples

答案 3 :(得分:0)

if $("#Input_" + id+"Isquery").is(":checked"){
   $("#Input" + id + "OdbcParamsId").toggle();
}