2011-05-12 45 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