在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中有错误吗?
答案 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代码中的两个更正..
OnClientClick="Javascript:return validatecontrol();"
OnClick="Validate_Click"
asp:ImageButton ID="Validate" runat="server" OnClientClick="Javascript:return validatecontrol();" OnClick="Validate_Click" />
&安培; Javascript函数中的一个更正
在javascript函数的return false;
部分中使用else
。如果值不合适则会停止进一步处理。