摘要:而不是使用通常會觸發回發的asp.net按鈕,請使用html製作一個。讓html按鈕運行一個首先檢查正則表達式驗證的javascript函數,然後(如果有效)運行回發函數。
第一個,我將刪除用於觸發服務器端代碼的asp.net按鈕,並將其替換爲客戶端按鈕。如果您需要幫助創建此按鈕,您可以按照我的另一個答案中的步驟操作。這裏是鏈接:
https://stackoverflow.com/questions/14062993/input-type-image-onclick-will-trigger-its-event-but-not-act-well-on-funct/14063911#14063911-Stack Overflow
二,JavaScript函數應該使用正則表達式函數首先驗證數據。使用這樣的事情:
function validateCombobox(myComboboxValue) {
if(myComboboxValue.match(regularExpressionString)===null){
return false
} else {
return true
};
};
***注:正則表達式是一個薄弱領域對我來說,你可能需要修改這個腳本一點。
第三,如果輸入使用上面的腳本驗證,然後使用javascript調用回發。要這樣做,請按照下列步驟操作:
- 在asp頁面上創建一個。這是必要的 ,因爲沒有它,該網站將不會生成事件處理程序 所需的buttonclick事件。
將鏈接按鈕的CSS顯示屬性設置爲'none'。請注意, 鏈接按鈕的「可見」屬性被設置爲true(這是因爲 asp.net甚至不會爲控件提供虛假的 可見屬性)。爲了說明這一點,如果你的鏈接按鈕的的CssClass 名字爲myButton,將它添加到你的CSS文件:
.myButton
{
display: none;
}
現在,創建按鈕和正確隱藏,你可以添加 回傳功能,以您的javascript函數。回發功能 有兩個參數,第一個是我們創建的 鏈接按鈕控件的客戶端ID。 當心客戶端的 asp.net控件的ID不同於您在開發過程中爲其分配 的ID。因此,我們使用<%= Control.ClientId%> 來獲取控件的客戶端ID。如果您的鏈接按鈕ID是 「myLinkButton」,下面應該是回傳功能:
__doPostBack('<%=myLinkButton.clientid %>','')
請注意,有強調在 開始該功能的字符。
這裏是正則表達式驗證功能的示例和JavaScript函數,應該由你的新按鈕調用:
function validateCombobox(myComboboxValue) {
if(myComboboxValue.match(regularExpressionString)===null){
return false
} else {
return true
};
};
function comboBoxButton_click(){
var myComboboxValue = $('#<%=myComboBox.clientid %>').val();
if(validateCombobox(myComboboxValue)==true){
__doPostBack('<%=myLinkButton.clientid %>','');
};
};
我目前所面對的很多雜念和我如果這些說明有點混亂,請原諒我。如果您需要更多幫助,請隨時發表評論,我會盡快回復。
我很欣賞詳細的答覆,但我首先看看是否可以使用regularexpression驗證程序。不過謝謝。 – Wade73