Вы используете $(document).ready()
только с кодом, который хотите запустить во время инициализации.Вы не используете его для именованных функций, которые хотите запустить позже.Похоже, вы пытались сделать некоторые из них с одним и тем же кодом.
Я бы предложил изменить ваш код следующим образом.Я удалил имя функции и удалил onclick=f()
из вашего HTML, который ссылался на него, поскольку он вам тоже не нужен.Теперь в $(document).ready()
запущен обработчик кликов, который подключает для вас функцию обработчика кликов (больше не нужно onclick="f()"
).Затем код для обработчика щелчка выполняет остальную часть вашей работы.
$(document).ready(function() {
$("#chkBoxName").click(function () {
var thisCheck = $(this);
if (thisCheck.is(':checked')) {
var myDate = new Date();
var displayDate = (myDate.getMonth() + 1) + '/' + (myDate.getDate()) + '/' + myDate.getFullYear();
thisCheck.next(".textbox1").val(displayDate);
}
});
});
<input type="checkbox" ID="chkBoxName" runat="server" />
<asp:TextBox CssClass="textbox1" PreValue="" runat="Server" ID="txt_comp_name_date_v" Required="false" Enabled="False" />
Вы можете увидеть, как он работает здесь: http://jsfiddle.net/jfriend00/9y7sC/.
Вы должны быть очень осторожны с этой частьюкод thisCheck.next(".textbox1")
, потому что это очень требовательно при поиске текстового поля.Если вы поместите какой-либо промежуточный HTML-тег между ними, он не будет работать - это должен быть следующий HTML-тег и у него должен быть правильный класс.
Если у вас много флажков рядомв текстовые поля, и вы хотите, чтобы все они получили эту функцию, затем просто дайте им всем одно и то же имя класса и обратитесь к этому классу в коде jQuery следующим образом:
$(document).ready(function() {
$(".dateCheckbox").click(function () {
var thisCheck = $(this);
if (thisCheck.is(':checked')) {
var myDate = new Date();
var displayDate = (myDate.getMonth() + 1) + '/' + (myDate.getDate()) + '/' + myDate.getFullYear();
thisCheck.next(".textbox1").val(displayDate);
}
});
});
<input type="checkbox" class="dateCheckbox" runat="server" />
<asp:TextBox CssClass="textbox1" PreValue="" runat="Server" ID="txt_comp_name_date_v" Required="false" Enabled="False" />
Вот пример работы нескольких флажковот одного куска кода: http://jsfiddle.net/jfriend00/twu5n/