Javascript 使用jquery进行整数比较时遇到问题

Javascript 使用jquery进行整数比较时遇到问题,javascript,jquery,comparison,Javascript,Jquery,Comparison,我有以下代码 <input type="text" id="max_marks" name="max_marks" value="100"> <input type="text" id="marks" name="marks" value="75" > <script type="text/javascript"> $(document).ready(function(){

我有以下代码

<input type="text" id="max_marks" name="max_marks" value="100">            
<input type="text" id="marks" name="marks" value="75" >
        <script type="text/javascript">
            $(document).ready(function(){
                $('#marks,#max_marks').change(function(){
                    var mm=$('#max_marks').val();
                    var m=$('#marks').val();

                    if(parseInt(mm,10) > parseInt(m,10))
                    {
                     alert("Maximum marks greater than obtained marks");   
                    }                        
                }).change(); 
            });

        </script>

$(文档).ready(函数(){
$('#标记,#最大标记')。更改(函数(){
var mm=$('max#u marks').val();
var m=$('#marks').val();
if(parseInt(mm,10)>parseInt(m,10))
{
警告(“最大分数大于获得的分数”);
}                        
}).change();
});

当最大标记数小于获得的标记数时,警报将触发。我在哪里出错?

您编写的代码容易受到不正确的数字字符串的攻击。我建议修改如下:

function isNumberInt10(n) {
  return !isNaN(parseInt(n,10)) && isFinite(n);
}

$(document).ready(function(){
    $('#marks,#max_marks').change(function(){
        var mm, m;

        mm=$('#max_marks').val();
        if (!isNumberInt10(mm)) {
           alert("Max marks needs to be a number");
           return;
        }
        m=$('#marks').val();
        if (!isNumberInt10(m)) {
           alert("Marks needs to be a number");
           return;
        }

        if(parseInt(mm,10) > parseInt(m,10)) {
            alert("Maximum marks greater than obtained marks");   
        }                        
    }).change(); 
});

有时,我们无法预测客户端脚本语言(如jQuery和Javascript)的流量。有没有人会尝试下面的方法

 <input type="text" id="max_marks" name="max_marks" value="100"><span></span>
 <input type="text" id="marks" name="marks" value="50" ><span></span>
        <script type="text/javascript">
            $(document).ready(function(){

                function isNumberInt10(n) {
                         return !isNaN(parseInt(n,10)) && isFinite(n);
                        }
                function isValidMarks(m,n){

              if(parseInt(m) <= parseInt(n))
                    {   
                             return true;
                    }
                }        
                $('#max_marks').change(function(){

                 var mm=$('#max_marks').val();
                    if (!isNumberInt10(mm)) {
                        $('#max_marks').next().text('Enter valid marks');
                        $('#max_marks').attr('value','');
                        $('#max_marks').focus();
                        }
                   else
                    {
                        $('#max_marks').next().text('');
                        $('#max_marks').attr('value','');
                        $('#max_marks').focus();
                    }   
                    }).change(1000); 

           $('#marks').change(function(){        

                    var mm=$('#max_marks').val();
                    var m=$('#marks').val();

                  if (!isNumberInt10(m)) {
                        $('#marks').next().text('Enter valid marks');
                        $('#marks').attr('value','');
                        $('#marks').focus();
                        }
                   else
                    {    
                        $('#marks').next().text('');
                    }
                   if(isValidMarks(mm,m))
                    {   
                        $('#marks').next().text('Enter Valid obtained marks');
                        $('#marks').attr('value','');
                        $('#marks').focus();
                    }
                    else
                    {
                        $('#marks').next().text('');
                    }
                   }).change(1000);
            });

        </script>

$(文档).ready(函数(){
函数为numberprint10(n){
return!isNaN(parseInt(n,10))&&isFinite(n);
}
函数isValidMarks(m,n){

if(parseInt(m)
mm
m
的值是多少?在这里很好:你能给出更多的示例代码,告诉我们为
m
mm
给出的值吗?对我来说很好:。在这种情况下,调试你的代码,并确保
mm
m
是你认为的。涉及的操作很简单e(这只是比较)从输入到输出跟踪问题并不困难。设置断点,一步一步地检查代码。给定您发布的代码,这是不可能的-因为它在人们发布的所有三个小提琴中都有效。尝试Felixs的方法来缩小问题范围。它不适用于
parseInt()
section.代码很长,但在我的场景中效果很好,感谢您抄袭了我的解决方案的重要部分Mahesh D。