如果在页面加载时勾选复选框并且在单击时禁用输入
Disable input if checkbox is ticked on page load AND when it is clicked
我看过很多描述如何检查复选框是否被选中的问题,但其中 none 给出了我需要的答案。我想检查复选框是否在页面加载时被选中,如果是,则禁用输入。然后我需要在页面加载后框为 checked/uncheked 时更改禁用的输入。
这是我的:
jQuery(document).ready(function($) {
if ($('.is-repeat-event').prop('checked')) {
$('.event-date').prop('disabled', 'true' );
}
$('.is-repeat-event').change(function(){
var d = this.checked ? 'true' : 'false';
$('.event-date').prop('disabled', d );
});
});
它自己的任何一部分都有效,但将它们放在一起不起作用(.change 事件对输入没有影响)。
那是因为 属性 禁用需要设置为布尔值 true/false。也可以绑定后触发事件,查看页面加载的相关变化:
$('.is-repeat-event').change(function(){
$('.event-date').prop('disabled', this.checked );
}).change();
尝试使用 trigger()
:
$(function() {
$('.is-repeat-event').on('change', function(e) {
$('.event-date').prop('disabled', this.checked);
}).trigger('change');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>
<label>Repeat
<input type='checkbox' class="is-repeat-event" checked='' />
</label>
</div>
Event Date
<input type='date' class="event-date" value="2015-07-12" />
我看过很多描述如何检查复选框是否被选中的问题,但其中 none 给出了我需要的答案。我想检查复选框是否在页面加载时被选中,如果是,则禁用输入。然后我需要在页面加载后框为 checked/uncheked 时更改禁用的输入。
这是我的:
jQuery(document).ready(function($) {
if ($('.is-repeat-event').prop('checked')) {
$('.event-date').prop('disabled', 'true' );
}
$('.is-repeat-event').change(function(){
var d = this.checked ? 'true' : 'false';
$('.event-date').prop('disabled', d );
});
});
它自己的任何一部分都有效,但将它们放在一起不起作用(.change 事件对输入没有影响)。
那是因为 属性 禁用需要设置为布尔值 true/false。也可以绑定后触发事件,查看页面加载的相关变化:
$('.is-repeat-event').change(function(){
$('.event-date').prop('disabled', this.checked );
}).change();
尝试使用 trigger()
:
$(function() {
$('.is-repeat-event').on('change', function(e) {
$('.event-date').prop('disabled', this.checked);
}).trigger('change');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>
<label>Repeat
<input type='checkbox' class="is-repeat-event" checked='' />
</label>
</div>
Event Date
<input type='date' class="event-date" value="2015-07-12" />