2014-10-27 93 views
0

我有两个名为txtbalance和txtdays的文本框。如果我在txtdays输入比txtbalance更大的值,我想显示错误消息。我有一个JavaScript方法,但它不工作。如何使用jquery比较两个文本框的值?

<script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> 
</script> 
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    $("#txtdays").on('input', function() { 
     var txtbalance = $('#txtbalance').val(); 
     var txtdays = $('#txtdays').val(); 

     if (txtbalance === "" || txtdays === "") return false; 

     if (parseInt(txtbalance) < parseInt(txtdays)) { 
      alert("u cant apply"); 
     } 
    }); 
}); 
</script> 

而且我SOURSE代码

<% Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="drop._Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
<style type="text/css"> 
    .style1 
    { 
     width: 100%; 
    } 
    </style> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
<head> 
<script type="text/javascript" language="javascript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    $("#txtdays").on('input', function() { 
     var txtbalance = $('#txtbalance').val(); 
     var txtdays = $('#txtdays').val(); 

     if (txtbalance === "" || txtdays === "") return false; 

     if (parseInt(txtbalance) < parseInt(txtdays)) { 
      alert("u cant apply"); 
     } 
    }); 
}); 
</script> 
</head> 
<table class="style1"> 
    <tr> 
<asp:TextBox ID="txtbalance" runat="server"></asp:TextBox> 
</tr> 
<tr> 
<asp:TextBox ID="txtdays" runat="server"></asp:TextBox> 
</tr> 
</asp:Content> 

请帮我达成解决方案......

回答

2

如果余额数字,你最有可能需要使用parseInt函数。像这样:

if (parseInt($('#txtbalance').val()) < parseInt($('#txtdays').val())) { 
    alert("u cant apply") 
} 
+0

它不显示任何信息。 – 2014-10-27 07:44:15

+0

我在txtdays输入值时需要即时消息 – 2014-10-27 07:46:39

2
$(document).ready(function() { 
    var n = $("#txtbalance").val(); 
    var m = $("#txtdays").val(); 

    if(parseInt(n) > parseInt(m)) { 
     alert("Alert!"); 
    } 
}); 
0

添加事件处理程序来改变文本框事件,比较值。

<script language="javascript" type="text/javascript"> 
var bal=''; 
var days=''; 
$(document).ready(function() { 
    $("#txtbalance").change(function() { 
     bal=$(this).val(); 
     return compare(bal,days); 
}); 

$("#txtdays").change(function() { 
     bal=$(this).val(); 
     return compare(bal,days); 
}); 
}); 
function(bal,days) 
{ 
     if(bal!='' && days!='' && parseInt(bal)<parseInt(days)) 
      { 
      alert("u cant apply"); 
      return false; 
} 
     return true; 
} 
</script> 
+0

我在txtdays文本框中输入值时想要出现错误消息。上述方法不适合我先生 – 2014-10-27 08:01:50

0

我会用钥匙了方法:

$("#txtdays").on('keyup', function() { 
    // your code here 
} 
0

http://jsfiddle.net/y7hgwyvy/ - jQuery的1.7

$(document).ready(function() { 
    $("#txtdays").on('input', function() { 
     var txtbalance = $('#txtbalance').val(); 
     var txtdays = $('#txtdays').val(); 

     if (txtbalance === "" || txtdays === "") return false; 

     if (parseInt(txtbalance) < parseInt(txtdays)) { 
      alert("u cant apply"); 
     } 
    }); 
}); 

你也可以思考一些延迟时txtdays输入用户键入值。

EDIT

溶液的jquery 1.4 http://jsfiddle.net/y7hgwyvy/1/

+0

这是因为你的jQuery版本。更新你的jQuery或试试这个 [链接](http://jsfiddle.net/y7hgwyvy/1/) – Adam 2014-10-27 09:37:34

+0

是的我更新了我的jQuery版本,但没有显示任何回应 – 2014-10-27 09:46:07

+0

我不知道怎么可能,你可以发送一个此页面的源代码?把它从浏览器中,我需要看到纯净的HTML和JS,没有ASP标签。 – Adam 2014-10-27 09:51:40