jQuery - 以编程方式将值插入文本字段然后触发单击

时间:2013-07-05 10:00:33

标签: jquery

可能有更好的方法来做到这一点,但就目前而言,我需要这样做。

我有一个谷歌地图地理编码事情,输入字段如下:

<input id="geocomplete" type="text" placeholder="Type in an address" style="width:400px;" value="#url.address#" />
<input id="find" type="button" value="find" />

请注意,地理编码字段是自动填充的。通常,用户在点击“查找”之前会手动输入此值,但在此文件中,用户正在更新其记录,因此我正在自动填充地址。

我正在使用以下代码触发点击“查找”按钮,该按钮通常会根据输入的地址生成谷歌地图。当用户在点击“查找”之前手动输入地址时,此方法可以正常工作。

不要被<cfoutput>代码分阶段。这是一个coldfusion模板,工作正常。

$(function(){
    var address = '<cfoutput>#url.address#</cfoutput>' || "";

    if(address.length != 0){
        $("#find").trigger("click"); // doesn't work 
        /*$("#geocomplete").trigger("geocode");*/ // doesn't work either                    
    }

    $("#find").click(function(){
        $("#geocomplete").trigger("geocode");
    });
})

这不起作用,似乎什么也没发生。如果我手动单击“查找”按钮,则可以正常工作。不确定,但我认为这是因为没有手动输入地理编码字段。如果是这样的话,我该怎么做?

3 个答案:

答案 0 :(得分:2)

你需要扭转它。当您触发click时,您的活动尚未创建。

$(function(){
    var address = '<cfoutput>#url.address#</cfoutput>' || "";

    $("#find").click(function(){
        $("#geocomplete").trigger("geocode");
    });

    if(address.length != 0){
        $("#find").trigger("click");
   }
})

答案 1 :(得分:2)

我认为使用触发器(“点击”)您无法完美复制真正的鼠标点击。 Insted为什么不这样做:

if(address.length != 0){

        $("#geocomplete").trigger("geocode");                 
    }

答案 2 :(得分:0)

不确定,但我认为这应该可以解决问题:

$("#find").click();