JavaScript - 从函数返回false不起作用?

时间:2011-04-23 13:13:50

标签: javascript asp.net

我在asp.net按钮客户端点击上调用javascript函数,并希望阻止回发。功能有效,但不会停止回发。我的Javascript是:

function User2Check()
    {
        var user2id=document .getElementById("txtP2UserName");
        var user2password=document .getElementById("txtP2Password");

        if(user2id.value=='' & user2password.value!='')
        {
            alert("User name is required");
            user2id=document .getElementById("txtP2UserName").foucs();
            e.preventDefault();                
            return false;
        }
        if(user2id.value!='' & user2password.value=='')
        {
            alert("Password is required");
            user2id=document .getElementById("txtP2UserPassword").foucs();
            e.preventDefault();                
            return false;

        }


    }

我称这个函数是:

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check();" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" />

plz指南。

5 个答案:

答案 0 :(得分:1)

你的javascript需要一个参数,但是来自按钮的OnClientClick的调用没有参数。我认为,因为e为null,函数在返回false之前终止或返回,但由于focus()调用是在调用e之前的任何内容之前,函数似乎正在工作。

答案 1 :(得分:1)

您应该使用&&代替&

if(user2id.value!='' && user2password.value=='')

AND:函数需要一个参数,但是你没有参数调用

你可以这样做

function User2Check(e)
{
    var user2id=document .getElementById("txtP2UserName");
    var user2password=document .getElementById("txtP2Password");

    if(user2id.value=='')
    {
        alert("User name is required");
        user2id=document .getElementById("txtP2UserName").focus();
        e.preventDefault();                
        return false;
    }
    if(user2password.value=='')
    {
        alert("Password is required");
        user2id=document .getElementById("txtP2UserPassword").focus();
        e.preventDefault();                
        return false;
    }

return true;

}

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check(event);" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" />

答案 2 :(得分:1)

您使用以下代码并删除“e.preventDefault();”来自代码。

function User2Check()
{
var user2id=document .getElementById("txtP2UserName");
var user2password=document .getElementById("txtP2Password");

if(user2id.value=='')
{
    alert("User name is required");
    user2id=document .getElementById("txtP2UserName").focus();
    return false;
}
if(user2password.value=='')
{
    alert("Password is required");
    user2id=document .getElementById("txtP2UserPassword").focus();
    return false;
}
  return true;
}

和服务器端代码 使用

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check();" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" />

答案 3 :(得分:0)

你拼错了foucs();

该错误后代码将停止运行。

答案 4 :(得分:-1)

由于您似乎没有返回true,请在函数前添加一个感叹号。例如:

!function(){
    // Code here!
}