2011-12-02 79 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'); } 


}