1

虽然我使用这个

 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 代码] **

<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>

我不得不说用显示/隐藏替换切换()确实有效。但是选择器的事情对我来说有点尴尬

4

4 回答 4

2

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

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

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

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

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

至:

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

使用“jQuery”或“$”,但将它们混合起来会导致您感到困惑,它们是同一回事

于 2012-06-04T09:56:01.863 回答
0

首先,您似乎误解了 jQuery 选择器的工作原理,我强烈建议您立即阅读jQuery教程

其次,你的用途toggle不是它应该被用来做什么;也许它有效但它不是这样做的方式,实际上toggle是一个事件绑定函数

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


要获取复选框的值(布尔值truefalse

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

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

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

获取一个 select 的值(即被选选项的值):

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

要修改选择的值:

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

这里有一个带有一些示例的 JsFiddle

于 2012-06-04T11:08:39.767 回答
0

拨动开关说:

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

选择器说:

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

那么,是Input还是Input_

于 2012-06-04T09:49:50.030 回答
0
if $("#Input_" + id+"Isquery").is(":checked"){
   $("#Input" + id + "OdbcParamsId").toggle();
}
于 2012-06-04T12:54:39.380 回答