クライアントがチェックボックスをクリックした後にチェックボックスの値を取得するにはどうすればよいですか。
以下では、常にページにロードされた値を返しますが、クライアントがそれを変更した場合、変更は反映されませんか?ありがとう
var isChecked = $('#chkSelect').is(':checked');
クライアントがチェックボックスをクリックした後にチェックボックスの値を取得するにはどうすればよいですか。
以下では、常にページにロードされた値を返しますが、クライアントがそれを変更した場合、変更は反映されませんか?ありがとう
var isChecked = $('#chkSelect').is(':checked');
change
イベントをリッスンする必要があります。
$('#chkSelect').change(function(){
// use this one if you need the object value
var isChecked = $('#chkSelect:checked').val(); // returns value: on / undefined
// or this one if you need a boolean value
var bool_isChecked = $('#chkSelect').is(':checked'); // returns boolean: true / false
alert(isChecked +' '+ bool_isChecked); // test the vars result
});
$('#chkSelect').change(function(){
var isChecked = $('#chkSelect').is(':checked');
}
);
チェックボックスに変更ハンドラを使用することをお勧めします。それよりも、チェック.click()
ボックスの状態をクリックせずに変更できるため、使用することをお勧めします。上記のスクリプトはisChecked
、変更ごとに変数を更新します。
それは、コードをイベントに添付していないためです。ユーザーがこのようなチェックボックスをクリックすると、コードのブロックを追加できます
$('#chkSelect').click(function(){
var isChecked = $(this).is(':checked');
});
そこにはクリックハンドラはありません。onclick を更新する必要があります。
$(document).ready(function(){
var $chkSelect = $('#chkSelect'),
isChecked = $chkSelect.is(':checked');
$chkSelect.click(function(){
isChecked = $chkSelect.is(':checked');
}
});
クライアントが値を変更した場合、イベント ハンドラー .click() .change() などを介してそれをキャプチャする必要があります。
したがって、関数を引数として受け入れるイベントハンドラーを追加する必要があります。これは、イベントが報告された後に何らかのアクションを実行します(この場合、変数 isChecked を更新します)。
チェックボックスIDがmyChkbxであるとします
$("#myChkbx").change(function(){
isChecked = $(this).is(':checked'); // will return true/false depending on the state
});
また、入力要素の値属性を介してチェックボックスに値を保存している場合、これはチェックボックスの「値」を提供value="some value"
しません。
$("#myChkbx").change(function(){
isChecked = $(this).val(); // will return the value regardless if checked or not
});
このフィドルで試すことができます