Javascript 选择后验证输入字段

Javascript 选择后验证输入字段,javascript,jquery,validation,Javascript,Jquery,Validation,在选择valuta下拉列表后,我需要一些帮助来验证具有最小值的输入字段 以下是表格的一部分: <div class="row"> <header class="margin-bottom-20">I hereby guarantee payment up to:</header> <section class="col col-6"> <label class="input">Amount

在选择valuta下拉列表后,我需要一些帮助来验证具有最小值的输入字段

以下是表格的一部分:

<div class="row">
    <header class="margin-bottom-20">I hereby guarantee payment up to:</header>
    <section class="col col-6">
        <label class="input">Amount
            <input type="text" name="amount" id="amount" value="7500">
        </label>
    </section>

    <section class="col col-6">
        <label class="select">Valuta
            <select name="valuta" id="valuta" onChange="Choice();">
                <option value="SEK">SEK</option>
                <option value="EUR">EUR</option>
            </select>
            <i></i>
        </label>
    </section>                                          
</div>

您可以向jQuery添加自己的自定义验证方法

    $.validator.addMethod('minRule', function (value, el, param) {
        if($('#valuta').val() == "SEK")
           return value > 2500;
        if($('#valuta').val() == "EUR")
           return value > 250;
    },"Please provide enter correct amount"); // Message added
用法:

amount: {
    required: true,
    minRule: 0,
    number: true
}

我几乎用以下代码实现了它:

<script type="text/javascript">
    $('#valuta').change(function(){
        console.log("test");
        var amount = this.value;
        var str = "";

        switch(amount){
            case "SEK":
                str = "2500";
                break;
            case "EUR":
                str = "250";
                break;
        }
        if ($('#valuta').val() == 'SEK') {
            $('#amount').val("2500");
            $('#amount').attr("min", 2500);
        } else if($('#valuta').val() == 'EUR') {
            $('#amount').val("250");
            $('#amount').attr("min", 250);
        }

        $("#amount").val(str);


    });
</script>

$('#valuta')。更改(函数(){
控制台日志(“测试”);
var金额=此值;
var str=“”;
开关(数量){
“瑞典克朗”案:
str=“2500”;
打破
“欧元”案:
str=“250”;
打破
}
如果($('#valuta').val()='SEK'){
美元(‘金额’).val(“2500”);
$('金额').attr(“最小值”,2500);
}else if($('#valuta').val()='EUR'){
美元(“金额”).val(“250”);
$('金额').attr(“最小”,250);
}
美元(“#金额”).val(str);
});
现在的问题是,因为它被预先选择为SEK,输入字段的值为2500,所以验证不起作用。我可以将数量更改为1,这是一个有效的输入,但是它必须是2500或更高。 当我将其更改为欧元并将金额更改为250以下时,以及当我再次将其更改为瑞典克朗并将金额更改为2500以下时,我工作


当有人将预选值更改为1时,如何验证该值?

仅在这种情况下丢弃jquery validate。它会让你困惑。因为您仍然在学习jquery

我尽可能地编辑你的代码

这里


本人特此保证支付金额不超过:
数量
瓦卢塔
挑选瓦卢塔
瑞典克朗
欧元
$(函数(){
$('#valuta')。更改(函数(){
var valuta=$(this.val();
变量金额=$(“#金额”).val();
开关(valuta){
“瑞典克朗”案:

如果(amoundapplu)像通常一样将初始验证应用于所有字段,那么在更改select值时,您可以在完成此操作后添加/删除动态jquery验证link@Danny,这很容易,因为上面的注释将初始验证应用于所有字段,然后在进行更改时,您可以验证输入,如$(“#amount”).valid()($('amount').valid()){}这也没有起作用。它在下拉菜单上给出了一个验证错误:警告:没有为amount定义消息
amount: {
    required: true,
    minRule: 0,
    number: true
}
<script type="text/javascript">
    $('#valuta').change(function(){
        console.log("test");
        var amount = this.value;
        var str = "";

        switch(amount){
            case "SEK":
                str = "2500";
                break;
            case "EUR":
                str = "250";
                break;
        }
        if ($('#valuta').val() == 'SEK') {
            $('#amount').val("2500");
            $('#amount').attr("min", 2500);
        } else if($('#valuta').val() == 'EUR') {
            $('#amount').val("250");
            $('#amount').attr("min", 250);
        }

        $("#amount").val(str);


    });
</script>
<div class="row">
    <header class="margin-bottom-20">I hereby guarantee payment up to:</header>
    <section class="col col-6">
        <label class="input">Amount
            <input type="text" name="amount" id="amount" value="7500" required>
        </label>
    </section>

    <section class="col col-6">
        <label class="select">Valuta
            <select name="valuta" id="valuta" >
             <option value="">pick valuta</option>
                <option value="SEK">SEK</option>
                <option value="EUR">EUR</option>
            </select>
            <i></i>
        </label>
    </section>                                          
</div>
<script src="jquery-1.11.3.js"></script>
<script>
$(function(){
    $('#valuta').change(function(){
        var valuta = $(this).val();
var amount = $('#amount').val();

        switch(valuta){
            case "SEK":
                if(amount<2500) amount=2500;
                break;
            case "EUR":
                if(amount<250) amount=250;
                break;
        }
        $("#amount").val(amount);
    });
});
</script>