1

これを使いながら

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

選択ボックスを切り替えます。チェックボックスが実際にチェックされているかどうか、ページのロード後にもチェックしようとします: 1 つのオプション:

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

2 番目のオプション:

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();
}

そして、イベントのトグルが実際に機能している間にわかるように、セレクター no. 私は 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>

toggle() を show/hide に置き換えると、実際に結果がうまくいくと言わざるを得ません。しかし、セレクターのことは、私にとって少し厄介な謎です

4

4 に答える 4

2

最大の問題は、「checkbox」で始まるセレクターが無効であり、tagName「checkbox」がないことです。jQuery セレクター ":checkbox" がありますが、attr('checked','checked') を使用した最初の "if" も適切に設定されていません。

$('tagName[attribute="value"]') とは対照的に、IDセレクターを使用するのが最も効率的であり、読みやすいため、最後の解決策が最も効率的です。

編集:これが書かれた後にさらにコードが追加されました

私の「IDセレクターが最適です」の行に沿って、次を変更します。

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

に:

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

「jQuery」または「$」を使用しますが、それらを混同すると混乱が生じます。それらは同じものです

于 2012-06-04T09:56:01.863 に答える
0
if $("#Input_" + id+"Isquery").is(":checked"){
   $("#Input" + id + "OdbcParamsId").toggle();
}
于 2012-06-04T12:54:39.380 に答える
0

トグルには次のように書かれています。

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

そしてセレクターは言う:

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

それで、それはInputまたはInput_ですか?

于 2012-06-04T09:49:50.030 に答える
0

まず、jQuery セレクターの仕組みを誤解しているようです。今すぐjQuery チュートリアル を読むことを強くお勧めします。

第二に、あなたの使用は、toggleそれが使用されるはずの方法ではありません。たぶんそれは機能しますが、それを行う方法ではありません。実際toggleにはイベントバインディング関数です。

ここで、少なくとも jQuery 1.6 を使用していると仮定します。そうでない場合、次のコードは機能しない可能性があります。


チェックボックスの値を取得するには (のブール値true) false:

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

チェックボックスを変更するには (チェック済みとしてマークされている場合は、値を に変更しfalseてチェックを外します):

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

選択の値 (つまり、選択されたオプションの値) を取得するには:

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

選択の値を変更するには:

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

ここに、いくつかの例を含む JsFiddle があります。

于 2012-06-04T11:08:39.767 に答える