質問する
21889 次
4 に答える
9
あなたはほとんどそこにいたようです。構文エラーがいくつかあります。
$("#worldcb").click(function(){
var el = $("#worldSelect");
if (el){
el.removeAttr("disabled");
if (this.checked){
el.attr("disabled", "disabled");
}
}
});
デモ用のjsFiddleを次に示します。
ページがポストバックされたときに無効な状態を保持することに関しては、ページがロードされたときにいくつかのロジックを実行する必要があります。
if ($("#worldcb").is(":checked")){
$("#worldSelect").attr("disabled", "disabled");
}
于 2012-05-09T22:00:46.553 に答える
1
ロード時に2つを同期する必要があります。また、toggleSelection を変更して、イベント ハンドラーとして呼び出された場合でもスタンドアロンで呼び出された場合でも機能するようにします。
function toggleSelection( element, scope ){
scope = scope || this;
if (scope.checked) {
$(element.data).attr('disabled', 'disabled');
} else {
$(element.data).removeAttr('disabled');
}
}
$(function() {
$('#worldcb').click('#worldSelect', toggleSelection);
toggleSelection( { data : '#worldSelect' }, document.querySelector( '#worldcb' ) );
});
于 2012-05-09T22:12:55.063 に答える
1
最も簡単な方法は、ドキュメントの準備ができているように toggleFunction を割り当てることです。そのため、ページが読み込まれるたびに、そのチェックボックスのステータスがチェックされ、選択が正しく表示されます。特定のフォーム フィールドに autocomplete="off" 属性を指定して、キャッシュしないようにすることができます (そのため、ページの更新後にチェックボックスがオフになります)。
例:
$(document).ready(function() {
toggleSelection('#worldcb');
});
于 2012-05-09T22:01:15.083 に答える
0
ページの読み込み時に常に無効にしたい場合は、無効なプロパティを select html 要素に追加するだけです。
<select id="worldSelect" class="select" name="world" disabled></select>
于 2012-05-09T22:00:57.290 に答える