先运行javascript,然后运行成功运行代码

时间:2014-05-12 05:14:29

标签: c# javascript asp.net

在Asp页面中,我有以下控件。输入文本框,图像按钮和标签。

<input id="txtTotamt"  runat="server" type="text" value="0" />
<asp:ImageButton ID="Validate" runat="server"  OnClientClick="return validatecontrol();"/>
<asp:Label ID="lblerror" runat="server"></asp:Label>

在页面的javascript中

<script language="javascript" type="text/javascript">
    function validatecontrol() 
    {
        var valid_amt = document.getElementById("txtTotamt").value;
        if isNaN(valid_amt) == false {
            if(valid_amt % 1 != 0) && (valid_amt>0){
                return true;
            }else{
               document.getElementById("lblerror").innerHTML ="Error";
            }
        }else{
        document.getElementById("lblerror").innerHTML ="Error";
        }
    }
</script>

在代码背后

Protected Sub Validate_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Validate.Click
//my codes go here
End Sub

我想在JavaScript中验证文本框的内容,并且我还有用于单击该按钮的代码。我希望首先执行脚本,如果输入文本中的文本不正确,则后面的代码不应该执行。但它对我不起作用。我认为.net之后的代码会在JavaScript之前被触发。如何解决?我的javascript中有错误吗?

5 个答案:

答案 0 :(得分:3)

您的if语句缺少括号。 在javascript中,所有if语句都应该包含在标准括号中。如果没有这些,您将收到语法错误。

标准是:

if ( /*your if comparison here e.g 1 == 1*/) {

} else {

}

尝试更改:

if isNaN(valid_amt) == false {

为:

if (isNaN(valid_amt) == false) {

同样的:

if(valid_amt % 1 != 0) && (valid_amt>0){

if((valid_amt % 1 != 0) && (valid_amt>0)){

答案 1 :(得分:2)

尝试替换这些行

 if isNaN(valid_amt) == false {

 if (!isNan(valid_amt) || valid_amt!=undefined) {

答案 2 :(得分:1)

首先你必须向isNan()函数发送valid_amt的值:

if isNaN(valid_amt.value) == false 

并且,为了避免在验证无效时调用服务器函数,请将return false;添加到else语句中:

<script language="javascript" type="text/javascript">
    function validatecontrol() 
    {
        var valid_amt = document.getElementById("txtTotamt");
        if isNaN(valid_amt.value) == false {
            if(valid_amt % 1 != 0) && (valid_amt>0){
                return true;
            }else{
               document.getElementById("lblerror").innerHTML ="Error";
               return false;
            }
        }else{
        document.getElementById("lblerror").innerHTML ="Error";
        return false;
        }
    }
</script>

答案 3 :(得分:0)

Please modify your script as:

 <script type="text/javascript">
        function validatecontrol() 
        {
            var valid_amt = document.getElementById("txtTotamt");

            if (isNaN(valid_amt) == false)
            {
                if((valid_amt % 1 != 0) && (valid_amt>0))
                {
                    return true;
                }
            else
                {

                   document.getElementById("lblerror").innerHTML ="Error";
 return false;
            }
        }

        else
        {
        document.getElementById("lblerror").innerHTML ="Error";
 return false;
        }
        }
</script>

答案 4 :(得分:0)

aspx代码中的两个更正..

  1. OnClientClick="Javascript:return validatecontrol();"
  2. OnClick="Validate_Click"
  3. asp:ImageButton ID="Validate" runat="server"  OnClientClick="Javascript:return validatecontrol();" OnClick="Validate_Click" />
    

    &安培; Javascript函数中的一个更正

    在javascript函数的return false;部分中使用else。如果值不合适则会停止进一步处理。