我正在使用Twitter Bootstrap。在twitter引導模式窗體中未觸發的按鍵事件
我創建了一個模態窗口,它就會如預期調用。
這裏面模態,有一個形式:
<div id="initialSurveyInfo" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="modalId" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="modalId">Initial Survey Information</h3>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="surveyTitle">Survey Title :</label>
<div class="controls">
<input type="text" id="surveyTitle">
<span class="help-inline muted"><span class="char-limit">36</span> character(s) left</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="surveyDesc">Description:</label>
<div class="controls">
<textarea rows="5"></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</a>
<a href="/createSurvey" class="btn btn-primary continue">Continue</a>
</div>
</div>
對於輸入時,用戶被限制爲僅36個字符。超過36個字符,我想禁用「繼續」按鈕。
我有輸入旁邊的當前字符計數。
我的jQuery代碼來處理是這樣的:
$(document).ready(function() {
var calculate = function() {
var chararcters = $("#surveyTitle").val().length;
var remaining = 36 - characters;
if (remaining >= 0) {
$(".char-limit").val(remaining);
if ($(".continue").hasClass("disabled") === true) {
$(".continue").removeClass("disabled");
}
} else {
$(".continue").addClass("disabled");
}
};
$("#surveyTitle").keyup(calculate);
$("#surveyTitle").change(calculate);
});
不幸的是,KEYUP()和改變()不被解僱的事件/方法。因此,剩餘字符數不會減少,並且當字符數超過時,「繼續」按鈕也不會被禁用。
我用on('keyup', function)
替換了keyup
- 這也行不通。
我如何能到KEYUP事件做出響應的任何想法 - 主要的問題是如何改變在這種情況下「字符#左」?
我使用AngularJS太多,但我不認爲這是無論如何影響(模態窗口是基於一些以前的行動,AngularJS加載一個視圖模板)
幾乎是正確的。我需要將'$('body')'選擇器添加到on方法。請參閱下面的答案。 – callmekatootie 2013-02-27 14:51:31
所以你的答案適合你..? – sasi 2013-02-27 15:10:19
是的。有用。我跟隨你的領導,發現github問題,這也提到了正確的方法來做到這一點。 – callmekatootie 2013-02-28 04:12:38