2013-03-08 31 views
0

如果另一個文本輸入具有值(M/DD/YYY格式),我需要取消選中複選框(如果已選中)。我使用glDatePicker設置爲#StartDate價值,內容通過AJAX帶來因此Im使用「對」功能可按如果文本輸入有長度,jQuery將取消選中複選框

<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'); 
     } 
    }); 
}); 

Im相當肯定我有我的參數,在參數。對搞砸。

+1

$('#AllDate')。removeProp('checked'); – Dimitri 2013-03-08 20:46:14

+0

'$('#AllDate')[0] .checked = $(this).val()。length> 0;' – 2013-03-08 20:46:51

+0

您使用的是什麼版本的jQuery?如果我選中該框,請輸入頂部字段,然後單擊它,複選框將被取消選中:http://jsfiddle.net/j08691/PUzZw/。這不是你想要的嗎? – j08691 2013-03-08 20:50:40

回答

1

好的!你在這裏,因爲你使用glDatePicker。

我也修改了jsfiddle。 http://glad.github.com/glDatePicker/#reference

謝謝您:使用該腳本,當你選擇一個可選日期,它將從AllDate

刪除複選框,顯然這一切都來自於這個參考

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

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

晚安!

+0

對不起彼得,謝謝。 – 2013-03-08 21:13:59

+0

@DirtyBirdDesign不適合你? – 2013-03-08 21:14:35

+0

如果它工作完美! – 2013-03-08 21:25:42

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/

+0

根據http://api.jquery.com/removeprop/ .removeProp不應該使用刪除檢查。 (因爲它被完全刪除,不能再加回去。) – 2013-03-08 20:50:53

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

Example


或者,如果你正在更新#bottomContent與AJAX和需要保持.on()結合相同:

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

Example

+0

在我的情況下似乎沒有任何工作。如果我選中複選框,則(按日期選擇器)在#StartDate中輸入一個值,但不會清除#AllDate複選框。我可以記錄輸入的值 - 不確定日期選擇器是否搞砸了 – 2013-03-08 20:54:49

+0

@DirtyBirdDesign:我提供的示例是一個「處女場景」和工作。所以,鑑於最基本的實現工作,你確定你沒有任何其他腳本與綁定競爭嗎? – 2013-03-08 20:59:10

+0

如果我的溝通不清楚,我很抱歉。在你的例子中,如果你選擇複選框,那麼點擊#開始日期並調出日期選擇器,並選擇一個日期,它不是取消選中複選框,這是我需要的。 – 2013-03-08 21:02:39

相關問題