Javascript 选择后验证输入字段
在选择valuta下拉列表后,我需要一些帮助来验证具有最小值的输入字段 以下是表格的一部分: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
<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>