【问题标题】:Setting A Limit On Input Field Creation?设置输入字段创建限制?
【发布时间】:2014-07-05 08:18:48
【问题描述】:

我在这个话题上没有找到任何东西,所以我很快就在这里问了。

无论如何,我正在创建一个功能,允许用户向该部落添加新管理员,并使用户可以更轻松地添加一个新的输入字段,一切正常;)

但我想要的是只允许用户一次最多添加 5 个管理员,以节省服务器资源,因为他们现在可以拥有任意数量的管理员。

我该如何存档?

(代码如下)

<form>
    <input type="text" />
</form>
<button id="addFields">Add another field
    </button>

   //JQUERY SIDE BELOW

$(function ($) {

    $('body').on("click", '#addFields', function () {
        $('form').append('<input type="text" />')
    })

})(jQuery)

【问题讨论】:

  • 我将添加服务器端以限制这一点,使用客户端会减少麻烦,因此他们不必提交表单然后收到错误

标签: javascript jquery html input field


【解决方案1】:

客户端你可以这样做

$(function ($) {
       $('body').on("click", '#addFields', function () {
        if ($("form > input:text").length < 5) {
            $('form').append('<input type="text" />');
        }
        else{
         alert('can't add more admins');
        }
    });

})(jQuery);

但通过这种方式,您只能同时添加最多 5 个管理员。

在你的服务器端你应该做这样的事情(一个更强大的解决方案)(SQL)

    SET @admins= (SELECT COUNT(IdUSerAdmin) FROM Users where IdAdmin= @YouAdminUser)

    IF(@admins < 5)
    BEGIN
       INSERT INTO USERS ....
    END

【讨论】:

  • 感谢这项工作;)我还将添加服务器端,以防他们试图绕过客户端方法。我也投票给你并接受了你的解决方案
  • @Spudster 很乐意为您提供帮助
  • 我应该问另一个简单的问题,如何在 jquery 中显示一条消息,指出他们不再添加管理员
  • @Spudster 我会尽快回复
  • @Spudster 我已经更新了我的答案.. 让我知道你是否可以。任何信息我都在这里。
【解决方案2】:

@Vote to Close 说的是对的,您需要在服务器端和客户端都停止此操作。在客户端,您可以这样做:

$(function ($) {
    var MAX_LIMIT = 5;
    $('body').on("click", '#addFields', function () {
        if ($("form > input[type='text']").length < MAX_LIMIT) {
            $('form').append('<input type="text" />');
        }
    });

})(jQuery);

【讨论】:

    【解决方案3】:
    $(function ($) {
        var totalFieldsAdded = 0;
        var totalFieldsAllowed = 5;
        $('body').on("click", '#addFields', function () {
            if(totalFieldsAdded < totalFieldsAllowed){
                $('form').append('<input type="text" />');
                totalFieldsAdded++;
            }
        })
    
    })(jQuery)
    

    【讨论】:

    • 不是很“紧急”,但totalFieldsAllowed 应该是 4,因为舞台上已经有一个输入......
    • 感谢我现在解决了这个问题;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多