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

Run javascript first and on success run code behind

本文关键字:再运行 代码 成功 运行 javascript      更新时间:2023-09-26

在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?

您的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)){

尝试替换这些行

 if isNaN(valid_amt) == false {

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

首先必须将valid_amt的值发送给isNan()函数:

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>
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>

aspx代码中的两个更正。

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

,Javascript函数

在javascript函数的else部分使用return false;。如果值不合适,那么它将停止进一步的处理。