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"/>
–
<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
,当我删除脚本行时,它会起作用......会导致什么原因?
答案 0 :(得分:3)
可能是原型和jquery之间存在冲突,因为它们都使用$函数。有noConflict来处理这种情况。而不是混合标记和javascript定义选择的onchange不显眼:
$(function() {
$('select#id_dimension').change(function() {
$('form#dash_form').submit();
});
});
答案 1 :(得分:2)
您似乎已将prototypejs库添加到项目中。
prototypejs和jQuery都使用$
全局标识符,所以当你同时使用它们时,它们会发生冲突。
选择一个图书馆或另一个图书馆(我认为最好),或采取措施解决冲突: