I am stuck. Searched and tried for hours.
EDIT: I still can't make it work. Okay, I'll just put the source code to make it clear what I want to accomplish.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
var date_fmt="yyyy-mm-dd";
var time_fmt="HH:MM";
var date_field="#id_start_0, #id_end_0"; //id refering to html input type='text'
var time_field="#id_start_1, #id_end_1"; //id refereing to html input type='text'
function clearFmt(fmt_type)
{
if($(this).val() == fmt_type) {
$(this).val("");
}
}
function putFmt(fmt_type)
{
if($(this).val() == "") {
$(this).val(fmt_type);
}
}
$(document).ready(function() {
$(date_field).attr("title",date_fmt);
$(time_field).attr("title",time_fmt);
$(date_field).click(function() {
clearFmt(date_fmt);
});
$(date_field).blur(function(){
putFmt(date_fmt);
});
$(time_field).click(function(){
clearFmt(time_fmt);
});
$(time_field).blur(function(){
putFmt(time_fmt);
});
});
</script>
Help ?
Use the jquery bind method:
Also see my jsfiddle.
=== UPDATE ===
since jquery 1.4.3 you also can use:
Also see my second jsfiddle.
=== UPDATE 2 ===
Each function has his own
this
. After callingclearFmt
in this functionthis
is no longer the clicked element. I have two similar solutions:In your functions add a parameter called e.g.
element
and replace$(this)
withelement
.Calling the function you have to add the parameter
$(this)
.Also see my third jsfiddle.
-=-
An alternative:
Also see my fourth jsfiddle.
Note: if you don't use 'anyFuctionName' to declare any function then no need return method. just write your function simply like, yourFunctionName1().
in $document.ready section parameter is not issue. you just put your function name here. if you use 'anyFuctionName' function then you have to follow above format.
The following should work as seen in this live demo:
People are making this complicated, simply call directly as you would in Javascript
myfunc("value");