使用jquery进行整数比较时遇到问题
Getting trouble with integer comparison using jquery
我有以下代码
<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>
当最大标记数小于获得的标记数时,将触发警报。我哪里做错了?
有时我们无法预测客户端脚本语言(如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>
编写的代码容易受到不正确的数字字符串的攻击。我建议这样修改:
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();
});
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- 将子文档推送到父数组时遇到问题
- JQuery FullCalendar在从ajax成功调用rerenderEvents时遇到问题
- 在将javascript附加到我的html中时遇到问题
- 为什么我在以编程方式打开窗口时遇到问题
- 在将缩略图链接到模态时遇到问题
- 使用 ng 模型获取数据时遇到问题
- 是否有其他人在设计Twitter Typeahead时遇到问题'的搜索栏
- 使用jquery进行整数比较时遇到问题
- 使用PhantomJS下载动态web内容时遇到问题
- 设置RequireJS时遇到问题
- 让Javascript在SharePoint 2010上运行时遇到问题
- I'我在react.js中编写for循环时遇到问题
- 通过jQuery获取上传的文件名时遇到问题
- 我在启动我的节点时遇到问题.js IRC 机器人
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- 从谷歌地图自定义控件打开离子模态时遇到问题
- 在使用 YAML 和 Google App Engine 时遇到问题
- 在 Chrome 扩展程序中将鼠标悬停在广告上使用时遇到问题