检查输入文本字段中的值与 JSON 数组的值
Check value in input text field with that of JSON array
问题:
我有一个部分有效的函数,由于某种原因它卡在值 100 上。所有其他值都可以正常工作。该函数将输入字段的值与 JSON 数组中的相应值进行比较。
场景:
例如,您选择3,然后选择1,然后选择1,最终将得到值12。如果您在输入字段中输入 100,然后继续前进,将显示一个错误,如 addClass() 所示。100 不小于 12,并且不应允许 addClass() 添加错误。这里的错误在哪里?
该 HTML 代码:
<div id="ref" class="control-group">
<label class="control-label">Number of references:</label>
<div class="controls">
<div class="input-prepend">
<input class="input-small" id="references" name="references" type="text">
</div>
</div>
</div>
该数组由 PHP 生成,并通过 json_encode() 转换为 JavaScript,如下所示:
var numbers = <?php echo json_encode($numbers); ?>;
数组:
{
"1":{
"1":{
"1":"36",
"2":"63"
},
"2":{
"1":"54",
"2":"63"
}
},
"2":{
"1":{
"1":"60",
"2":"105"
},
"2":{
"1":"90",
"2":"105"
}
},
"3":{
"1":{
"1":"12",
"2":"21"
},
"2":{
"1":"18",
"2":"24"
}
}
}
jQuery代码:
<script type="text/javascript">
$(document).ready(function()
{
$('#references').change(function()
{
var choice1 = $('input[name=level]:checked').val();
if (choice1 == '1')
{
var choice2 = $('input[name=authors]:checked').val();
}
else
{
var choice2 = $('input[name=credits]:checked').val();
}
var number = numbers[3][choice1][choice2];
if ($(this).val() < number)
{
$('#ref').addClass('error');
}
else
{
$('#ref').removeClass('error');
}
});
});
</script>
您正在那里进行字符串比较。在字符串比较"100" < "12" = true
.尝试进行如下所示的数字比较,
if (parseInt($(this).val(), 10) < parseInt(number, 10))
现在,你所有的数字都是字符串...所以JavaScript引擎不会把你的数字当作真正的数字。
尝试将 parseInt() 包裹在您希望成为数字的任何内容周围:
<script type="text/javascript">
$(document).ready(function()
{
$('#references').change(function()
{
var choice1 = $('input[name=level]:checked').val();
if (choice1 == '1')
{
var choice2 = $('input[name=authors]:checked').val();
}
else
{
var choice2 = $('input[name=credits]:checked').val();
}
var number = parseInt( numbers[3][choice1][choice2], 10);
if (parseInt( $(this).val(), 10) < number)
{
$('#ref').addClass('error');
}
else
{
$('#ref').removeClass('error');
}
});
});
</script>
相关文章:
- 需要帮助设置json数组
- 如何使用 node.js 比较两个 json 数组
- 根据id将json数组组合为一个json数组
- 如何创建JSON数组
- 如何将package.json数组传递给grunt.js
- 访问json数组中的对象
- JSON数组数据返回Undefined
- 如何向JSON数组动态添加属性
- 如何从json数组中获取特定值
- 从多维嵌套json数组创建下拉列表
- 在ListView中添加JSON数组中存储的图像-ReactNative
- jquery在json数组中循环
- 将 JSON 数组解析为 JavaScript 数组
- 如何在php中读取没有任何键的JSON数组
- 如何在Jquery中迭代JSON数组
- 如何在cycle js中从JSON数组创建组件
- 如何使用jquery返回php-json数组对象
- JSON数组转换为JS对象数组
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 使用Underscore.js修改json数组中所选元素的更有效方法