先运行javascript,成功后再运行代码
本文关键字:再运行 代码 成功 运行 javascript | 更新日期: 2023-09-27 18:02:45
在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代码中的两个更正。
-
OnClientClick="Javascript:return validatecontrol();"
-
OnClick="Validate_Click"
,Javascript函数
在javascript函数的else
部分使用return false;
。如果值不合适,那么它将停止进一步的处理。