2011-12-02 78 views
1

我在驗證結束時爲一個名爲valsave()的按鈕設置了驗證功能,我禁用了該按鈕。在服務器端沒有觸發onclick

驗證和禁用功能都正常工作,但同一個按鈕的服務器端onclick功能沒有觸發。

<asp:Button ID="btnSave" runat="server" Text="Save" TabIndex="16" SkinID="imgsave" 
ToolTip="Save" OnClientClick="return valSave();" OnClick="btnSave_Click" /> 

function valSave() 
{ 


if(document.getElementById('hifMsgClick').value=='') 
{ 
    vtxtPRequestDate=document.getElementById('txtPRequestDate'); 
    vdgvPurReq=document.getElementById('dgvPurReq');   

    if(vtxtPRequestDate.value.length==0) 
    { 
     showMsgbox('BLANK','Purchase Request Date','2','txtPRequestDate'); 
     return false; 
    }   

    if(vdgvPurReq == null) 
    { 
     showMsgbox('BLANK','Purchase Request Details','2','ddlItemRequestID');    
     return false; 
    } 

}  
else 
{ 
    var vvalue=document.getElementById('hifMsgClick').value; 
    document.getElementById(vvalue).focus(); 
    document.getElementById('hifMsgClick').value=""; 
    return false; 
} 
    var vbtnSave=document.getElementById('btnSave'); 
    vbtnSave.disabled = true; 
    vbtnSave.value = 'Pls..wait'; 
    __doPostBack('btnSave','OnClick'); } 

如何讓服務器端onclick火?

+0

所以頁面職位,但該事件處理程序不執行或者是,頁面沒有按」 t後?只是想確保我明白你在說什麼。 –

+0

該頁面不發帖 – Anboo

回答

2

你爲什麼不只是return true;

+0

我試過了不行.. – Anboo

+0

你可以在你的代碼示例中顯示你嘗試過嗎?它應該工作。 – sq33G

+0

'var vbtnSave = document.getElementById('btnSave'); vbtnSave.disabled = true; vbtnSave.value ='請等待'; __doPostBack('btnSave','OnClick');返回true;}' else else後 – Anboo

0

如果禁用按鈕,則無法觸發onclick。所以我建議您在隱藏的。像增加一個按鈕:

<asp:Button ID="btnSave" runat="server" Text="Save" TabIndex="16" SkinID="imgsave" ToolTip="Save" OnClientClick="return valSave();" OnClick="btnSave_Click" /> 
<asp:Button ID="btnwait" runat="server" Text="Pls..wait" style="display:none" disabled="true" TabIndex="16" SkinID="imgsave" ToolTip="Save" /> 

,然後改變你的代碼像這樣在你的功能

document.getElementById('btnSave').style.display = 'none'; 
    document.getElementById('btnwait').style.display = 'block'; 
    document.getElementById('btnSave').Click(); 

謝謝
Gourav

+0

感謝您的回覆..不工作.. – Anboo

+0

你能給我發送錯誤嗎? –

+0

它不會引發任何錯誤,也不會調用服務端的onclick方法 – Anboo

0

試試這個樣本爲你開始。使用.client ID來獲取您的控件ID。並在聲明變量時使用var。

function valSave() { 

    var mytext = document.getElementById("<%=hifMsgClick.ClientID%>").value; 
    if (mytext == "") 
    { 
     alert("No records found"); 
    } 
    else 
    { 
     //CLICK SAVE 
     document.getElementById("<%=btnSave.ClientID%>").click(); 
    } 

}; 

問候

0

你的函數總是返回false,因爲你如果條件始終返回false

function valSave() 
{ 


    if(document.getElementById('hifMsgClick').value=='') 
    { 
     return false; 
    } 
    else 
    { 
     return false; 
    } 

    // this part can not execute 
var vbtnSave=document.getElementById('btnSave'); 
vbtnSave.disabled = true; 
    vbtnSave.value = 'Pls..wait'; 
    __doPostBack('btnSave','OnClick'); } 


}