插入一些脚本后,美元符号返回null

时间:2010-06-20 12:26:01

标签: javascript jquery

javascript新手在这里,我在html中写了一个表单并提交了一个onchange事件,但是在我在javascript中添加了一个daterange选择器后,提交无法正常工作。这是我的代码:

    <form id="dash_form" method="get">
        <div>Select a Tag Bundle dimension:</div>
        <select name="dimension" id="id_dimension" onchange="$('form#dash_form').submit()">
            <option value="">No dimension </option>
            <option value="Hello">Hello</option>
        </select>
        <h4>Please select a date range below:</h4>
        <div id="calendars"></div>
        <span>
        <input type="text" name="from" value="" id="start"/>
        &ndash;
        <input type="text" name="to" value="" id="end"/>
        </span>
    </form>
    <script type="text/javascript" charset="utf-8" src="/site_media/crm/javascripts/prototype.js"></script>
    <script type="text/javascript" charset="utf-8" src="/site_media/crm/javascripts/timeframe.js"></script>
    <script type="text/javascript" charset="utf-8">
      //<![CDATA[
        new Timeframe('calendars', {
          startField: 'from',
          endField: 'to',
          latest: Date.parseToObject({{Now}}),
          resetButton: 'reset' });
      //]]>
    </script>
在firebug中我得到$("form#dash_form") is null,当我删除脚本行时,它会起作用......会导致什么原因?

2 个答案:

答案 0 :(得分:3)

可能是原型和jquery之间存在冲突,因为它们都使用$函数。有noConflict来处理这种情况。而不是混合标记和javascript定义选择的onchange不显眼:

$(function() {
    $('select#id_dimension').change(function() {
        $('form#dash_form').submit();
    });
});

答案 1 :(得分:2)

您似乎已将prototypejs库添加到项目中。

prototypejs和jQuery都使用$全局标识符,所以当你同时使用它们时,它们会发生冲突。

选择一个图书馆或另一个图书馆(我认为最好),或采取措施解决冲突:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries