2011-12-18 3 views
0

Я немного начинаю с jquery. У меня возникла проблема с созданием функции для заполнения текстового поля текущей датой при щелчке по галочке. У меня есть рутина, работающая сама по себе, но я хотел бы ее обернуть функцией, поэтому я могу называть ее несколько раз на странице. Я включил код здесь, а также ссылку jsfiddlereturn system date on checkbox check jquery

jsFiddle Link

HTML:

<span id="ContentPlaceHolder1_Label8">Start Date:</span> 

     <input name="ctl00$ContentPlaceHolder1$startdateSrvcTXT" type="text" id="ContentPlaceHolder1_startdateSrvcTXT" disabled="disabled" class="aspNetDisabled" /> 

     <span id="ContentPlaceHolder1_Label11">Check to Start</span> 

     <input id="ContentPlaceHolder1_StartFillCHK" type="checkbox" name="ctl00$ContentPlaceHolder1$StartFillCHK" /> 

JavaScript:

/*----This works------ 
$('#ContentPlaceHolder1_StartFillCHK').click(function() { 

       if (this.checked) { 

        var myDate = new Date(); 

        var prettyDate = (myDate.getMonth() + 1) + '.' + myDate.getDate() + '.' + 

myDate.getFullYear(); 

        $('#ContentPlaceHolder1_startdateSrvcTXT').val(prettyDate); 

       } else { //if not checked 

        $('#ContentPlaceHolder1_startdateSrvcTXT').val(''); 

       } 

      }); 

*/ 

//this doesnt 
function fillclick(txtid,checkid){ 
$("'" + checkid + "'").click(function() { 

       if (this.checked) { 

        var myDate = new Date(); 

        var prettyDate = (myDate.getMonth() + 1) + '.' + myDate.getDate() + '.' + 

myDate.getFullYear(); 

        $("'" + txtid + "'").val(prettyDate); 

       } else { //if not checked 

        $("'" + txtid + "'").val(''); 

       } 

      }); 
} 

fillclick("#ContentPlaceHolder1_startdateSrvcTXT","#ContentPlaceHolder1_StartFillCHK"); 

ответ

3

Вы запрашивая по ID; вам нужно использовать # селекторы:

и

$("#" + txtid).val 

Edit: Вы уже использовать их. Там нет необходимости цитировать что-нибудь, они уже строки:

$(checkid).click 

и

$(txtid).val 

.

+1

Он передает строки функций с '#' уже в них ... –

+0

, который работает благодаря. Я думал, что передав параметр строки с # селектором как часть строки, которая будет работать, но, видимо, не – JDV590

+0

@AndrewWhitaker: Правильно, исправлено! – Ryan

1
function fillclick(txtid,checkid){ 
     $("#" + checkid).click(function() { 

       if (this.checked) { 

        var myDate = new Date(); 

        var prettyDate = (myDate.getMonth() + 1) + '.' + myDate.getDate() + '.' + myDate.getFullYear(); 

        $("#" + txtid).val(prettyDate); 

       } else { //if not checked 

        $("#" + txtid).val(''); 

       } 

      }); 
} 
0

Я ничего не скажу о функции, чтобы получить текущее время. Я постараюсь помочь вам сделать следующее. У вас есть флажок и текстовое поле, как это:

<input type="checkbox" id="ch1" name="ch1" /> 
<input type="text" id="current_time" name="current_time"> 

Теперь, используйте этот код, чтобы делать то, что вам нужно:

$(document).ready(function() { 
    var myTime = getTime(); // getTime() is your own function to get the current time. 
    if ($('#ch1').is(':checked')) { 
     $('#current_time').val(myTime); 
    } 
}); 

Я надеюсь, что я мог бы помочь вам.