Je suis un peu débutant en jquery. J'ai du mal à créer une fonction pour remplir une zone de texte avec la date actuelle lorsque vous cochez une case. J'ai la routine qui fonctionne seule, mais je voudrais l'envelopper dans une fonction afin de pouvoir l'appeler plusieurs fois sur la page. J'ai inclus le code ici ainsi qu'un lien jsfiddle

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");
0
JDV590 19 déc. 2011 à 00:24

3 réponses

Meilleure réponse

Vous interrogez par ID; vous devez utiliser les # sélecteurs:

$("#" + checkid).click

Et

$("#" + txtid).val

Edit: vous les utilisez déjà. Inutile de citer quoi que ce soit, ce sont déjà des chaînes:

$(checkid).click

Et

$(txtid).val

.

3
Ry- 18 déc. 2011 à 20:35
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('');

                }

            });
}
1
Derk Arts 18 déc. 2011 à 20:29

Je ne dirai rien sur la fonction pour obtenir l'heure actuelle. Je vais essayer de vous aider à faire les prochaines choses. Vous avez une case à cocher et une zone de texte comme celles-ci:

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

Maintenant, utilisez ce code pour faire ce dont vous avez besoin:

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

J'espère que je pourrais vous aider.

0
Mohammad Saberi 18 déc. 2011 à 20:38