php - 使用 JSON 数组检查输入文本字段中的值

标签 php javascript jquery arrays json

问题:

我有一个部分工作的函数,由于某种原因它卡在值 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))

关于php - 使用 JSON 数组检查输入文本字段中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853307/

相关文章:

javascript - php 脚本中的 header() 不起作用

javascript - 动态添加函数到 function.prototype

php - MySQL查询结果波动

javascript - React-create-library 导入图片问题

jquery - 如何在打开另一个下拉菜单时关闭相邻的下拉菜单

javascript - 在页面加载时隐藏 div

jquery - 无法从表单中隐藏剑道下拉列表

php - Cake Bake - 在数据源中找不到模型 GroupsUser 的表 groups_users

php - 将产品添加到购物车之前的 Magento 事件

php - 如何安装phpUnit测试?