2014-04-05 120 views
0

在我的网络表单中,我想要有几个文本字段,其值为'请输入日期','输入您的年龄'等,当文本字段获得焦点并且用户开始输入数据时,这些字段会消失。我试图用Javascript/JQuery编写这个功能,但由于某种原因,我的JavaScript代码没有执行。Javascript代码不能执行?

在我的HTML文档的头,我已经包括了我所写作以及JQuery的来源:

<head> 
    {% load staticfiles %} 
    <script src="{% static 'jquery-1.11.0.js' %}"></script> 
    <script src="{% static 'text_area.js' %}"></script> 
</head> 

我对其中包含的一个形式的代码文件中进一步下跌我文本字段:

<form action="" method="post"> {% csrf_token %} 
    <td> <input id="expire_date" 
      name="expire_date" 
      type="text" 
      value="{{list_expire_date}}"/> 
    </td> 
... 
</form> 

这里是text_area.js来源:

$('#expire_date').focusin(function(){ 
    if(this.value == '{{list_expire_date}}') 
    { 
     this.value = ''; 
     showCalendarControl(this); 
    } 
}).focusout(function(){ 
    if(this.value == '') 
    { 
     this.value = '{{list_expire_date}}'; 
     hideCalendarControl(this); 
    } 
}) 
+0

这是HTML5占位符的用途!你把代码包装在文档中准备好了吗? – adeneo

回答

0

的“的focusIn”事件触发时,内输入元素获得焦点: https://www.twilio.com/docs/api/rest/sending-messages

你想你的代码更改为:

$('#expire_date').on('focus', function(){ 
if(this.value == '{{list_expire_date}}') 
{ 
    this.value = ''; 
    showCalendarControl(this); 
} 
}).on('blur', function(){ 
if(this.value == '') 
{ 
    this.value = '{{list_expire_date}}'; 
    hideCalendarControl(this); 
} 
}) 

或者,如果你将有多个输入,将“focusin”事件处理程序绑定到表单。

+0

我将如何将事件处理程序绑定到窗体? – user3361761

+0

与你正在做的绑定输入相同:'$('form')。focusin()'。然而,我建议这样的:'('form')。on('focus','input.classname',function(){})。on('blur','input.classname',function (){});'。 –