如果文本输入有长度,则jQuery取消选中复选框

时间:2013-03-08 20:44:43

标签: jquery validation

如果另一个文本输入具有值(M / DD / YYY格式),我需要取消选中复选框(如果已选中)。我正在使用glDatePicker来设置#StartDate的值,这是通过ajax引入的内容所以我使用'.on'funciton

<div id="bottomContent">
    <input type="text" id="StartDate" name="StartDate"><br />
    <input type="text" id="EndDate" name="EndDate"><br />
    <label for="AllDate"><input type="checkbox" name="AllDate" id="AllDate">All Dates</label>
</div>

$(function() {
    $('#bottomContent').on('change', '#StartDate', function(e){
        var value = $(this).val();
        if ( value.length > 0  ) {
        //$('#AllDate').prop('checked', false);
        console.log('hi');
        }
    });
});

我很确定我的参数在.on参数中搞砸了。

3 个答案:

答案 0 :(得分:1)

.prop('checked', false)应按预期工作。尝试取消注释该行,它应该可以工作(请参阅下面的小提琴链接)。

$(function() {
    $('#bottomContent').on('change', '#StartDate', function(e){
        var value = $(this).val();
        if ( value.length > 0  ) {
             $('#AllDate').prop('checked', false);
        console.log('hi');
        }
    });
});

我之前建议使用.removeProp()but I'm mistaken

请参阅此处的小提琴 - http://jsfiddle.net/teddyrised/Xkvcx/

答案 1 :(得分:1)

OK!你去,因为你正在使用glDatePicker。

我也修改了jsfiddle。

http://jsfiddle.net/Xkvcx/8/

$(function() {
    $('#StartDate').glDatePicker({
        onClick: (function(el, cell, date, data) {
            el.val(date.toLocaleDateString());
            $('#AllDate').prop('checked', false);
        })
    });
});

使用此脚本,无论何时选择可选日期,它都会从AllDate

中删除该复选框

显然这一切都来自这个参考:http://glad.github.com/glDatePicker/#reference

谢谢你,晚安!

答案 2 :(得分:0)

$('#StartDate').on('change', function(e){
    $('#AllDate')[0].checked = $(this).val().length > 0;
});

Example


或者,如果您使用AJAX更新#bottomContent并且需要保持.on()绑定相同:

$('#bottomContent').on('change', '#StartDate', function(e){
    $('#AllDate')[0].checked = $(this).val().length > 0;
});

Example