2009-07-28 105 views
0

我有第三方用戶控件(一個驗證碼控件),它有一個驗證碼圖像和一個文本框。在asp.net 2.0中設置默認按鈕

我在我的網頁中使用上述用戶控件。我的網頁上有3個提交按鈕(驗證驗證碼,提交頁面,添加用戶)。當我點擊使用鼠標驗證驗證碼提交按鈕時,我正在驗證驗證碼是否爲空並顯示javascript警報。

當我在文本框中輸入有效的驗證碼文本並在光標位於文本框中時按回車鍵時,就會出現問題。該頁面只是刷新。我無法將按鍵事件添加到文本框,並調用驗證驗證碼按鈕事件,因爲我正在使用無法修改的第三方用戶控件。

另外,Page.ClientScript.RegisterHiddenField(...)在我的情況下不起作用,因爲我在同一頁面內有兩個其他的提交按鈕。

只剩下選項是將它們放在面板中並設置默認按鈕。

請讓我知道是否有人有更好的選擇來實現這一點。

回答

0

問候!我也使用了很多第三方控件。要記住這些控件的事情,最終他們只是發佈HTML。這意味着您可以使用DOM來訪問和附加事件處理程序,如onKeyPress。訣竅是確定你的控件創建者如何命名你正在尋找的控件,在這種情況下是{textbox}。最簡單的方法是簡單地運行頁面並查看頁面源代碼。正是在那裏,你可以找到的名字,因爲它被渲染和發送到瀏覽器後,所有你需要做的我們使用的document.getElementById獲取對象和設置您的處理程序

例子:

<script> 
    //Place this AFTER your textbox control is declared in the HTML 
    //Get the textbox 
    var textbox = document.getElementById('nameOfRenderedControlHere'); 
    //Assign the event handler and function you want it to call 
    textbox.onclick = function() { validateCaptcha(); }; 

    function validateCaptcha() 
    { //Do your Stuff here } 
</script> 

這應該是..經過測試,讓我知道,如果你遇到問題。

0

將驗證碼放在它自己的<asp:Panel>中,併爲驗證碼提交按鈕的ID添加一個DefaultButton屬性。