javascript $ find在IE中返回null

时间:2011-05-12 17:52:43

标签: asp.net ajax asp.net-ajax ajaxcontroltoolkit

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

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

将在提交/发布时清除,因为Extender控件认为没有人编辑过它,所以它正在清除“水印”。

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

并且它在Firefox中运行良好,但IE在此行中说“'null'为null或不是对象”:

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" /> 

2 个答案:

答案 0 :(得分:3)

对于有兴趣知道的人,我从使用body onLoad切换到我的javascript函数调用

Sys.Application.add_load(MyFunction);

正如本文所述:http://blogs.telerik.com/dimodimov/posts/08-12-13/don_t_use_body_onload_in_asp_net_ajax_websites.aspx

现在IE,Firefox和Chrome都看到$ find的值。

答案 1 :(得分:1)

试试这个:

$("Beh" + sender).text();
当你已经查找了一个或多个元素并且想要在其中找到子元素时,使用

find()。例如,你抓住一个表,然后想要用foo类找到表中的所有元素,如下所示:

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