我正在使用asp.net,我设计了一个简单的表单
我正在进行javascript验证。
当任何文本框为空时,它应在标签
中显示错误但遗憾的是,即使出现错误,我的网页每次都会回复
因此标签正在刷新并且没有显示错误消息
并且空白数据也会发布到服务器
因为,使用Telerik Controls,我正在呼叫的按钮:
<telerik:RadButton ID="btnSave" runat="server" Text="Save" OnClientClicked="validate"
OnClientClicking="validate" onclick="btnSave_Click">
我的javascript代码:
function validate() {
var flag = 0;
var errorText = "";
if (document.getElementById('txtPartyCode').innerHTML == "") {
errorText = errorText + "\n Please Enter PartyCode";
flag = 1;
}
if (document.getElementById('txtEmailId').innerHTML == "") {
errorText = errorText + "\n Please Enter EmailID";
flag = 1;
}
if (document.getElementById('txtPhoneNumber').innerHTML == "") {
errorText = errorText + "\n Please Enter Phone Number";
flag = 1;
}
if (document.getElementById('txtBrockrage').innerHTML == "") {
errorText = errorText + "\n Please Enter Brockrage";
flag = 1;
}
if (document.getElementById('txtTax').innerHTML == "") {
errorText = errorText + "\n Please Enter Tax";
flag = 1;
}
document.getElementById('lblErrors').innerHTML = errorText;
if (flag == 1) //{
//alert(errorText);
//return true;
//}
//else
return true;
}
</script>
javascript函数中是否有错误???
答案 0 :(得分:3)
<telerik:RadButton runat="server" ID="btnTest" OnClientClicking="validate" />
javascript将是
function validate(sender, args)
{
// your code
if (flag == 1)
{
args.set_cancel(true);
}
else
{
args.set_cancel(false);
}
}
set_cancel(shouldCancel) - 设置一个bool值,指示是否 该活动将被取消。设置为true表示事件将是 取消。
答案 1 :(得分:2)
对于服务器控件,您可能需要使用&lt;%= lblErrors.ClientID%&gt;因此它应该看起来像
document.getElementById('<%= lblErrors.ClientID%>')
我不确定您是如何调用此函数的,但如果验证失败则应返回false。即
if (flag == 1)
return false;
如果您在服务器按钮的onclient上单击它,那么它应该看起来像
OnClientClick="return validate();"
我希望它有所帮助!
修改强>
在这种情况下,您可能需要调用它,如下所示(注意:我还没有测试过它)
<telerik:RadButton ID="btnSave" runat="server" Text="Save" OnClientClicked="OnClientClicked" onclick="btnSave_Click">
<script type="text/javascript">
function OnClientClicked(button, args)
{
if (validate())
{
button.set_autoPostBack(true);
}
else
{
button.set_autoPostBack(false);
}
}
</script>
您可能想要查看Telerik按钮事件here
答案 2 :(得分:1)
查看here了解详细信息,您可以尝试更改上一个if
块,如下所示:
function validate(sender, args)
{
// your code for validation
if (flag == 1)
{
args.set_cancel(false);
}
else
{
args.set_cancel(true);
}
}
更新您的代码,如:
<telerik:RadButton ID="btnSave" runat="server" Text="Save"
OnClientClicked="validate"
onclick="btnSave_Click">