2010-06-20 44 views
1

JavaScript新手在這裏,我寫了一個HTML形式,並提交了一個onchange事件,但在javascript中添加日期範圍選擇器提交不起作用。這裏是我的代碼:插入一些腳本後美元符號返回null

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

的螢火,我得到$("form#dash_form") is null,當我刪除腳本行它的工作原理...這是什麼原因?

回答

2

您似乎已將prototypejs庫添加到您的項目。

prototypejs和jQuery都使用$全局標識符,所以當你有兩個時,它們會發生衝突。

要麼選擇一個圖書館或其他(最好在我看來),或者採取措施來解決衝突:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

+0

謝謝,我刪除了原型它的工作 – 2010-06-21 12:04:53

3

可能是原型和jquery之間的衝突,因爲它們都使用$函數。有noConflict來處理這種情況。此外,而不是混合標記和JavaScript定義選擇unchange的變化:

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

謝謝,我刪除了樣機和它的工作 – 2010-06-21 12:05:17