2011-12-18 159 views
0

我有点初学jQuery。我无法创建一个函数来填充一个文本框,当点击一个复选框时的当前日期。我有自己的例程工作,但我想把它包装在一个函数中,所以我可以在页面上多次调用它。我已经包括这里的代码,以及一个链接的jsfiddle返回系统日期复选框检查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 

编辑:你已经在使用它们。有没有必要引用任何东西,他们已经字符串:

$(checkid).click 

$(txtid).val 

+1

他传递函数字符串已经在他们的'#'... – 2011-12-18 20:33:51

+0

工程谢谢。我认为通过将字符串参数传递给#selector作为可以工作的字符串的一部分,但显然不是 – JDV590 2011-12-18 20:33:57

+0

@AndrewWhitaker:对,修正! – Ryan 2011-12-18 20:35:52

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

我希望我可以帮助你。