Jquery 页面加载时选中复选框
Jquery checkbox checked when page loads
脚本工作正常,但我想知道是否有办法避免代码中的重复(DRY 方法)。
JS代码:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
}
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
});
将您的逻辑分离到一个可重复使用的函数中:
function checkboxStatus() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
}
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
checkboxStatus();
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(checkboxStatus);
简单使它变得容易jquery有很多方法可以完成
$('#checkbox').prop( 'checked', true ); // when intially checked
$('#checkbox').change(function(){
$('#textInput').prop('disabled', $(this).is(':checked'));
if(!$(this).is(':checked')){
$('#textInput').val('')
}
}).change(); //intially trigger the event change
如果每次加载页面时都希望选中复选框并禁用文本框,最好在 HTML
中完成
HTML
<input type="checkbox" id="checkbox" checked="true" />
<input type="text" id="textInput" disabled=""/>
JavaScript
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
});
如果不能在HTML
中默认设置属性:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').on('change', function() {
var value = this.checked ? $('#textInput').val() : '';
$('#textInput').prop('disabled', this.checked).val(value);
}).trigger('change');
您可以使用更少的代码获得相同的结果,如下所示:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
$('#textInput').prop('disabled', true);
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function () {
var checked = $(this).is(':checked') == true;
$('#textInput').prop('disabled', checked);
});
脚本工作正常,但我想知道是否有办法避免代码中的重复(DRY 方法)。
JS代码:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
}
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
});
将您的逻辑分离到一个可重复使用的函数中:
function checkboxStatus() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
}
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
checkboxStatus();
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(checkboxStatus);
简单使它变得容易jquery有很多方法可以完成
$('#checkbox').prop( 'checked', true ); // when intially checked
$('#checkbox').change(function(){
$('#textInput').prop('disabled', $(this).is(':checked'));
if(!$(this).is(':checked')){
$('#textInput').val('')
}
}).change(); //intially trigger the event change
如果每次加载页面时都希望选中复选框并禁用文本框,最好在 HTML
中完成HTML
<input type="checkbox" id="checkbox" checked="true" />
<input type="text" id="textInput" disabled=""/>
JavaScript
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function() {
if ($('#checkbox').is(':checked') == true) {
$('#textInput').prop('disabled', true);
} else {
$('#textInput').val('').prop('disabled', false);
}
});
如果不能在HTML
中默认设置属性:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').on('change', function() {
var value = this.checked ? $('#textInput').val() : '';
$('#textInput').prop('disabled', this.checked).val(value);
}).trigger('change');
您可以使用更少的代码获得相同的结果,如下所示:
// Checkbox checked and input disbaled when page loads
$('#checkbox').prop('checked', true);
$('#textInput').prop('disabled', true);
// Enable-Disable text input when checkbox is checked or unchecked
$('#checkbox').change(function () {
var checked = $(this).is(':checked') == true;
$('#textInput').prop('disabled', checked);
});