我有一个带有选择列表的表单,Jquery将onChange处理程序绑定到该选择。永远不会调用处理程序。在Jquery方面,我尝试过这些:
$("#dateShortcuts").on("change", function() { ... });
$("#dateShortcuts").change(function() { ... });
$("#dateShortcuts").on("change", myPredefinedFunc());
$(document.body).on("change", "#id", function() { ... });
$("#parentForm").on("change", "#dateShortcuts", function() { ... });
无论我尝试什么,我都无法触发事件处理程序。我的功能目前只是警告一个字符串,所以我知道它的工作原理,但最终它会调整两个日期选择器。我的选择列表:
<select id="dateShortcuts" name="dateShortcuts">
<option value="-5">Since Sunday (last 5 days)</option>
<option value="0">Today Only</option>
<option value="-20">Days since May 1</option>
<option value="-1">Yesterday and Today</option>
<option value="-30">Last 30 Days</option>
</select>
我真的不知道还有什么可以尝试的。我在网上找到的所有东西都说其中一个应该有效。我知道Jquery本身正在工作,因为它在同一页面上处理了很多其他任务并完美地完成了它们。我还应该说我已经尝试过的样本都在$(document.ready)里面,我(成功)在同一个表单中为某些文本字段设置onChange处理程序。其他一切都很好,只是这个选择列表不能正常工作。我已经在IE和Firefox上测试了它。感谢您的任何建议。
答案 0 :(得分:0)
试试这个
$(document).on("change", "#dateShortcuts", function() {
//your code here
});
答案 1 :(得分:0)
试试这个
$(function(){
$(document).on("change", "#dateShortcuts", function() {
//do something here
});
});
答案 2 :(得分:0)
如果javascript代码不在
内运行,我会遇到同样的问题$(document).ready(function() {
...
});
阻止或<select>
可能是使用javascript创建的。
我可以使用以下方法解决它:
$('#dateShortcuts').on('change', document, function() {
// your code here...
...
});
答案 3 :(得分:-1)
嗯,不太了解JQuery,但这看起来像是基本的(取自w3schools):
$("#select").change(function(){
alert("The text has been changed.");
});
问题,是你的代码之前创建的“dateShortcuts”吗?这可能是问题所在。如果没有,你可以把你的函数放在try中并捕获:
function doSomething(){
try{
alert('IN');
//do something here
}
catch(e){
alert(e.message);
}
}
如果显示错误,请发送电子邮件。如果没有,那么你可能在函数外面有一个语法错误(注意我发出一个警告,看看函数是否真的在运行)。
希望它有所帮助。