我有一个下拉列表,该列表通过外部公司提供的Javascript函数填充。它基本上检查输入是否是有效的邮政编码类型,然后将可能的地址返回到下拉列表中。
如果下拉列表中有一些选项,即一些地址已被找到并填充到选择中,我就不知道如何显示一条消息。
我试过这个:
$(function() {
function showmsg() {
if ($("#selectaddress").length > 1)
$('#buttonhint2').slideDown('normal');
}
$("#btnFind").click(showmsg)
});
但它没有做任何事情。我对这一切都是一个完全新手,所以我不确定我是不是正在吠叫正确的树。任何帮助非常感谢。
答案 0 :(得分:2)
好吧,你可能要等到外部函数实际运行其代码。我对这个功能一无所知或在哪里运行,所以我无法帮助你。如果它为你提供了一个回调函数的方法,只需将它传递给你的'showmsg'函数(并在Jimmie提到的文档就绪语句之外写)。
如果它不允许回调函数参数并且你知道它在页面加载时运行,你可以延迟你的showmsg函数,比如500毫秒或者其他东西..这可能会给第一个脚本留出足够的时间运行(但是,你想要玩这个,直到你做对了)。如果第一个函数使用AJAX来检索数据,那么您可能需要重新考虑使用该函数,或者只是修改此第三方函数(如果许可证允许)以添加回调功能。
您可以将脚本设置为延迟:
$(function() {
setTimeout(function() {
if ($("#selectaddress option").length > 0) {
$('#buttonhint2').slideDown('normal');
}
},500);
});
此外,您还需要检查选择框中的选项的数量,而不是页面上的选择框数量。您之前至少检查了两个选项,我提供的脚本至少检查了一个。
答案 1 :(得分:1)
尝试将您的函数showmsg()移到文档之外:
function showmsg() {
if ($("#selectaddress").length > 1)
$('#buttonhint2').slideDown('normal');
}
$(function() {
$("#btnFind").click(showmsg)
});