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。