2009-10-07 81 views
0

我有一個輸入類型=圖像的形式。它在onclick中有一個確認返回true/false允許/停止表單提交。我最近使用回調處理程序「升級」爲非模態對話框。輸入類型=圖像「開」沒有onclick事件

由於回調處理程序是非模態的,所以輸入的返回值總是假的,請不要提交...當我確認提交時,輸入的名稱不在表單中,因爲它在技術上沒有被點擊。這是問題,代碼正在尋找輸入...

我可以使用舊名稱的隱藏字段,並將其設置爲打開繞過該問題,但似乎cludgy。如果我可以在不觸發onclick(遞歸性災難)的情況下'打開輸入',那會怎麼樣呢?也許不是一場災難,但不是性感。我試圖將輸入的值設置爲打開,但似乎沒有發佈。

任何想法? P.S.我不使用.NET,因此涉及ASP.NET的解決方案將不適用:-(

我添加了示例代碼,單擊Foo!時,您會注意到Foo.x = 0和Foo.y =在地址欄中0點擊吧,你什麼也得不到我希望能夠把酒吧的形式在裏面BarCallback

代碼:。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title></title> 
    <script language="javascript" type="text/javascript"> 
     function Bar() { 
      setTimeout(BarCallback, 500); 
      return false; 
     } 

     function BarCallback() { 
      document.getElementById('TheForm').submit(); 
     } 
    </script> 
</head> 
<body> 
    <form method="get" id="TheForm"> 
     <input type="image" alt="Foo!" name="Foo" /> 
     <br /> 
     <input type="image" alt="Bar!" name="Bar" onclick="return Bar();" /> 
    </form> 
</body> 
</html> 
+0

請發佈HTML和JavaScript代碼 – eveliotc 2009-10-07 20:25:47

回答

0

什麼就好了,如果我可以'打開輸入'

不可能,對不起。您只能添加另一個控件來僞裝它(例如,隱藏的輸入,或者如果您使用的是AJAX,則爲直接參數)。

我試着將輸入的值設置爲on,但似乎並沒有發佈。

它是如何失敗的?對於圖片輸入,您需要在字段名稱中包含.x.y後綴,因爲這是瀏覽器用於通過位置傳遞圖片點擊的操作。例如。

<input type="hidden" name="submit.x" value="1" /> 
<input type="hidden" name="submit.y" value="1" /> 

代碼尋找輸入上...

你能不能修復代碼刪除這一要求?

+0

我可以,但我試圖儘可能無痛地進行更新......隱藏字段工作得很好,只是感覺很髒。感謝您的意見。 – 2009-10-07 20:44:02