2014-02-11 101 views
-1

运行我试图用的GreaseMonkey脚本来执行onchange功能,我使用这个代码:元素一次又一次

var element = document.getElementById("country"); 

if ('fireEvent' in element) 
    element.fireEvent("onchange"); 
else { 
    var evt = document.createEvent("HTMLEvents"); 
    evt.initEvent("change", false, true); 
    element.dispatchEvent(evt); 
} 

document.getElementById("country").value = "3"; 

但其执行/连连重装,所以我怎么能执行它只有一次? 我想对这个HTML代码中执行脚本:

<select name="country" id="country" onchange="form.submit()" style="width:300px;"> 
        <option value="0">Select Country</option> 
        <option value="1">US</option> 

        <option value="2">UK</option> 

        <option value="3">FR</option> 
</select> 
+0

感谢loxxy,请你为我改变这段代码,我在编码上很新手,再次感谢... – user3293200

+0

为什么重新加载?你在哪一页执行这个?这是整个脚本? – Bergi

+0

是的,它是整个脚本,我试图在这个html代码上运行这个脚本: user3293200

回答

0

平变化是每射击的更新是为了选择时间。只要加载了select元素,就会对其进行更新,以将第一个元素设置为选中状态。这将自动提交表单。如果您没有窗体上的操作属性,它将被提交给相同的确切页面,或者操作是否在同一页面上。整个循环再次开始。

+0

谢谢,你能给我的解决方案代码,只能在页面加载一次? – user3293200

+0

对不起,但我不认为有人会在这里给你代码。我们都必须支付我们的会费并学习它。 – alexK85

0
  1. 所以你加载HTML

  2. 触发事件onchange

  3. 触发form.submit()

  4. 带您到第1步?

有种感觉onchange="form.submit()"是罪魁祸首。但你需要分享更多。

+0

是的,你是正确的,它从第一步再次开始,一次又一次。这段代码正在工作,它正确地触发onchange,但问题是它应该只执行一次。 – user3293200