2013-04-01 29 views
0

我想做一個提交按鈕,當它被點擊,然後圖像將移動,另一個按鈕,當它被點擊圖像將重置。onclick函數工作,但onsmit不

不知何故,如果我用onclick函數做到這一點,圖像會移動,事情是好的,但如果我用它與onsubmit函數,那麼它將無法正常工作。任何人都可以告訴我爲什麼?

這是我有我的腳本:

function catMoveRight() 
{ 
    document.getElementById("cat").style.left=parseInt(document.getElementById("cat").style.left)+1+"px"; 
} 

window.onload=function() 
{ 
    catTimer = null; 

    document.getElementById("start").onsubmit=function() 
    { 
     if(catTimer == null) 
     { 
      catTimer = setInterval("catMoveRight()",1000); 
     } 

    } 

} 

這是我的HTML body

<img src="cat.jpg" id="cat" style=" position: absolute; left: 10px;"/><br/> 
<form action=" " method="post" id="start"> 
    <input type="submit" value="Start" style="position: absolute; left: 10px; top: 220px;" /> 
</form> 
+0

你需要證明你的代碼,'onsubmit'而不是爲'onclick',你可能會綁定事件的圖像,而不是形式,或者你可能會丟失一些其他錯誤。 –

+0

'onsubmit'只有在你把它放到'

'上時纔有效,而不是按鈕。你應該使用'onclick'。 – Xymostech

+0

是否將'onsubmit'添加到表單中? – phenomnomnominal

回答

4

確保取消形式的默認操作提交。一種方法是從事件處理程序返回false

document.getElementById("start").onsubmit = function() 
{ 
    if(catTimer == null) 
    { 
     catTimer = setInterval(catMoveRight, 1000); 
    } 
    return false; 
}; 

也沒有必要爲一個字符串傳遞給setInterval。不需要使用eval

例子:http://jsfiddle.net/QD3ev/1/

+0

謝謝。我相信這是回報錯誤;我沒有添加^ _^ – Dora

+0

@ user1850712:沒問題!樂意效勞。 –