Javascript jQuery表单检查-根据选择菜单值添加新关键字

Javascript jQuery表单检查-根据选择菜单值添加新关键字,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个简单的表单,几乎没有选择和输入字段。我只想对表单中的这三个字段执行jQuery检查: <form action="action/buy.php" method="post" class="form-horizontal" id="boosterForm"> <select name="Quantity" id="selectQuantity" tabindex="1" class="span2"> <option value="3">3

我有一个简单的表单,几乎没有选择和输入字段。我只想对表单中的这三个字段执行jQuery检查:

<form action="action/buy.php" method="post" class="form-horizontal" id="boosterForm">
<select name="Quantity" id="selectQuantity" tabindex="1" class="span2">
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        ..................
        <option value="99">99</option>
</select>

<input class="span11" id="wizard_url" type="text" name="Website" placeholder="http://www.example.com">

<input class="span11" type="text" name="Keywords">

<button class="btn btn-large btn-warning" type="submit" name="campaignSubmit" value="Buy Now" >Buy Now</button>

</form>
我想做的是,当用户从选择菜单中选择以下值3、6、9、12、15、18、21、24、27、30、33、36、39、42、45…99时,允许/阻止用户为每三个数量输入一个由coma分隔的新关键字

例如,如果他从数量下拉菜单中选择3,他不允许在关键字字段中添加任何逗号,如果他在4-6之间选择,他只允许输入一个逗号,如果他选择7-9,他只允许输入两个逗号,当他允许输入32个逗号时,一直到99

如果他们输入了更多的逗号,那么我想在字段下方显示一个简单的警告,让他们知道他们不能添加更多的关键字,例如,添加的关键字的最大数量。此外,我不想让他们提交表格,直到他们完成这一点

最后,如果现场网站是空的,他们也不能提交表格

我尝试了一些预先制作的jQuery表单检查脚本,但没有一个提供我上面所需要的,而且我自己也不是jQuery方面的专家


非常感谢您的帮助。非常感谢。

您可以试试这个,它的工作原理是允许使用4-6=1个逗号,允许使用7-9=2个逗号,允许使用10-12=3个逗号等等,并且网站不能为空

$(function(){
    $('#selectQuantity').on('change', function(){
        var val = $(this).val();
        if(val > 3) {
            var div = val / 3, mod = val % 3;
            if(mod == 0) {
                var commas = div-1;
            }
            else {
                var commas = parseInt(div);
            }
            $('input[name="Keywords"]').attr('data-commas', commas);
        }
    });

    $('[name="campaignSubmit"]').closest('form').on('submit', function(e){
        var el = $('input[name="Keywords"]');
        val = el.val(), commas = (val.split(',').length -1), msg = '';
        if(commas) {
            if(!el.attr('data-commas')) { 
                msg = "You can't put any commas in 'Keywords' field !";
            }
            else {
                if( el.attr('data-commas') && commas > el.attr('data-commas')) {
                    msg = "You can't put more than " + el.attr('data-commas') + " comma(s) in 'Keywords' field!";
                }
            }
        }
        if($('input[name="Website"]').val() == '') {
            msg += "\nWebsite can't be left blank !";
        }
        if(msg) {
            e.preventDefault();
            alert(msg);
        }
    });
});

如果有人选择4、5或10,逻辑是什么?为什么不应该是关键字?如果有人选择4或5,则允许他们添加2个逗号,因为它介于3-6之间,如果用户输入10,则允许用户输入3个关键字,因为它介于9-12之间。之所以使用逗号,是因为关键字通常用逗号分隔。我在文本中添加了一些小改动,以便您更容易理解。谢谢你的回答,它可以用4-6=1个逗号,7-9=2个逗号,10-12=3个逗号等等,网站不能空着。你的另一个好答案。根据需要工作。谢谢!