1

さて、これらのコードを別々に使用して非常にうまくいったので、これは私の心を吹き飛ばしますが、これらを一緒にすると機能しません。私がやろうとしていることを説明しますが、以下のコードを見れば、おそらく一目瞭然でしょう。

HTMLフォームで一度に2つのチェックボックスのうち1つだけをチェックできるようにしようとしています。(どちらのボックスもチェックしないオプションが使用可能でなければならないため、ラジオ ボタンは使用できません)。

とにかく、ここにコードがあります (入力フィールドの ID が正確であると仮定してください。それらは「sIsGangMember」と「sIsNotGangMember」です)

$("#sIsGangMember").change(function () {

    if ($("#sIsGangMember").is(':checked')) {
        document.getElementById("sIsNotGangMember").checked = false;
    }
});

$("#sIsNotGangMember").change(function () {

    if ($("#sIsNotGangMember").is(':checked')) {
        document.getElementById("sIsGangMember").checked = false;
    }
});

これが何かばかげている場合は本当に申し訳ありませんが、以前にこのコードのすべての部分を個別に使用したことがあり、すべてうまく機能していることは知っていますが、何か問題があることはわかりませんし、HTML 部分に問題があることもわかりません。

<tr>
    <td class="lineupColor2">
        Search For Street<br/>Gang Member
    </td>
    <td class="lineupColor2">
        <label for="sIsGangMember">Is Gang Member</label>
        <br/>
        <input type="checkbox" id="sIsGangMember" name="sIsGangMember" 
            style="margin-left: 115px;" value="ticked" @IsGangMemberTicked/>
    </td>
    <td class="lineupColor2"> 
        <label for="sIsNotGangMember">Is Not Gang Member</label>
        <br/>
        <input type="checkbox" id="sIsNotGangMember" name="sIsNotGangMember"
            style="margin-left: 115px;" value="ticked" @IsNotGangMemberTicked/>
    </td>
    <td class="lineupColor2">
         <button type="button" style="cursor: pointer;" 
             onclick="clearIsGangMembers()">Clear Fields
         </button>
    </td>
    <td class="lineupColor2">
    </td>
</tr>

表示されているカミソリ (C#) は、何も保持しないか、文字列 "checked='checked'" を保持する値にすぎないため、フォームは、以降の検索のためにチェックされているかどうか、またはエラーが発生したかどうかの値を記憶します。フォームが送信されないなど。

C# 変数を割り当てる部分は次のとおりです。

    //////////////////////////////////////////////////////////////////////////////////////////
    if(IsGangMember=="ticked"){IsGangMemberTicked="checked='checked'";}///////////////////////
    if(IsNotGangMember=="ticked"){IsNotGangMemberTicked="checked='checked'";}/////////////////
    //////////////////////////////////////////////////////////////////////////////////////////

とにかく、助けてくれてありがとう!

みんな助けてくれてありがとう、でも「なぜ」これがうまくいかないのか誰か教えてくれませんか?

アップデート:

わかりました、.click も機能しません...明らかに、ここで何か他のことが起こっています...

4

2 に答える 2

0

さて、私は本当に助けに感謝します、そしてどういうわけか(何が間違っている可能性があるかを何時間も検索して調査した後)私はそれが何かばかげていることを知っていました。

真実は、この方法で.changeを使用することに何の問題もありません。

私の問題は、誤って関数を配置してしまったことです。

$("#sIsGangMember").change(function () {

if ($("#sIsGangMember").is(':checked')) {
    document.getElementById("sIsNotGangMember").checked = false;
}
});

$("#sIsNotGangMember").change(function () {

if ($("#sIsNotGangMember").is(':checked')) {
    document.getElementById("sIsGangMember").checked = false;
}
});

すべてそれ自体がjsファイルに含まれます(たとえば、(document).readyまたはjQuery(function)などでラップされていません...。

それはつまらないです、はい、私はそれについてxDが叫ぶことを知っています、そしてあなたの助けのためにthnx、みんな!

于 2012-10-03T17:02:55.137 に答える
0

change イベントの代わりに click または mousedown を使用する必要があります。

jQueryチェックボックスの変更とクリックイベント

元。http://jsfiddle.net/qn8Kh/2/

この理由の詳細については 、チェックボックスの変更イベントとクリック イベントの jQuery の違いを参照してください。

于 2012-10-03T15:23:37.810 に答える