2011-05-12 67 views
3

我正在使用AJAX Control Toolkit控件“TextBoxWaterMarkExtender”。问题最初是在Firefox中,设置文本使用JavaScript像这样:

var getDateField = document.getElementById('soandso'); 
getDateField.value = 'someandsome'; 

会在提交/职位,因为扩展器控制以为没有人编辑它被清除,因此它被清除“水印”。

我跟着这个解决方法:http://www.mindfiresolutions.com/Workaround-for-TextBoxWatermarkExtender-of-AjaxControlToolkit--855.php

,并在Firefox的伟大工程,但IE浏览器说“‘空’为空或不是对象”在这条线:

var dateIdentified = $find("Beh" + sender).get_Text(); 

任何明显的是我错过了?

编辑:对不起,我认为$ find是一个jQuery函数。

编辑:更多的代码:

function dateToday(sender) 
     { 
      var dateIdentified = $find("Beh" + sender).get_Text(); 
      if (dateIdentified.length == 0) 
      { 
       var todaydate = new Date(); 
       var smonth = todaydate.getMonth() + 1; 
       var sday = todaydate.getDate(); 
       var syear = todaydate.getFullYear(); 
       $find("Beh" + sender).set_Text(smonth.toString() + '/' + sday.toString() + '/' + syear.toString()); 
      } 
     } 

水印:

<toolkit:TextBoxWatermarkExtender BehaviorID="BehSTART_DATE" ID="WaterMarkSTART_DATE" runat="server" 
TargetControlID="dcSTART_DATE" 
WaterMarkText="mm/dd/yyyy" WaterMarkCssClass="searchHint" /> 
+5

这不是jQuery。 – SLaks 2011-05-12 17:54:02

+0

首先,您的初始示例是本机Javascript。在第二个示例中,您没有正确调用.find()方法。你想做什么? http://api.jquery.com/find/ – 2011-05-12 18:00:23

+0

$ find命令来自.net javascript库。它不是jQuery。它用于查找.net DOM扩展名,如“TextboxWaterMarkExtender”或“Accordion”。 – Jeff 2011-05-12 18:06:18

回答

1

试试这个:

$("Beh" + sender).text(); 

find()方法用于当你已经抬头的元素或元素,并且您想要在其中找到子元素。例如,你抢一个表,然后想找到表中的所有元素与类Foo的,就像这样:

var myTable = $('#myTable'); 
// more code 
myTable.find('.foo'); 
+0

$(“Beh”+ sender).text(); 也返回null。 – Lactose 2011-05-12 18:17:13

+0

我应该注意,这仅适用于jQuery。如果您使用MS ajax库,则此代码不起作用。看起来MS库已经劫持了$,所以你可能会尝试用jQuery代替我的代码中的$(例如jQuery(“Beh”+ sender);) – 2011-05-12 18:20:51

+0

由于某种原因,我甚至不能称之为那样。 jQuery是未定义的。尽管我包含了src。 – Lactose 2011-05-12 18:46:02