javascript - 带有 if/elseif 语句的 Jquery Ui 滑块最小值和最大值范围
问题描述
我正在尝试使用 jquery range 幻灯片制作一个简单的发薪日贷款计算器。我有最低:500 美元和最高:5000 美元当用户超过 2000 美元时如何显示声明然后我显示“仅适用于回头客”
所以基本上: A. 如果贷款金额 <=2000,没有警告信息 B. 如果贷款金额在 >2000 和 <=5000 之间且期限为 3 或 5 个月,则以红色显示警告信息为 i。此贷款金额仅适用于回头客 ii。此期间(期限)仅适用于回头客。
$( document ).ready(function() {
function update() {
$interest = 0.3 ;
$perday = 15 ;
$amount1 = $("#amount").val();
$dayscount = $("#days").val();
$amount2 = parseInt($amount1) + $interest * parseInt($amount1) + (parseInt($dayscount) * ($perday/100));
$apr = (($amount2-$amount1 / $amount1 ) / ((parseInt($dayscount)/365) * 10000)) ;
$("#amount2").val($amount2);
$("#amount3").val(parseFloat($amount2-$amount1).toFixed(2));
$("#amount4").val($apr);
}
debugger;
$("#slider1").slider({
max:5000,
min:500,
step:10,
slide: function(event, ui) {
$("#amount").val(ui.value);
update();
},
change: function (event, ui) {
if (ui.value == 2) {
$("#mindiv").show();
} else {
$("#mindiv").hide();
}
}
});
function addDaysToDate(days) {
var mths = new Array("Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec");
var d = new Date();
d.setHours(d.getHours() + (24 * days));
var currD = d.getDate();
var currM = d.getMonth();
var currY = d.getFullYear();
return mths[currM] + " " + currD + ", " + currY;
}
$("#slider2").slider({
max:30,
min:1,
slide: function(event, ui) {
$("#days").val(ui.value);
$("#date").text(addDaysToDate(parseInt($("#days").val())));
update();
},
create: function(event, ui) {
$("#date").text(addDaysToDate(parseInt($("#days").val())));
}
});
$("#days").val($("#slider2").slider("value"));
$("#days").change(function(event) {
var data = $("#days").val();
if (data.length > 0)
{
if (parseInt(data) >= 0 && parseInt(data) <= 31)
{
$("#slider2").slider("option", "value", data);
}
else
{
if (parseInt(data) < 1)
{
$("#days").val("1");
$("#slider2").slider("option", "value", "1");
}
if (parseInt(data) > 31)
{
$("#days").val("31");
$("#slider2").slider("option", "value", "31");
}
}
}
else
{
$("#slider2").slider("option", "value", "1");
}
$("#date").text(addDaysToDate(parseInt($("#days").val())));
});
update();
});
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Loan Calculator with two jquery slider inputs </title>
<link rel='stylesheet prefetch' href='https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css'>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css'>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
Loan Amount<div id="slider1"></div>
Your Loan <input type="text" id="amount" value="500"/><br /><br />
hhhh<div id="mindiv">asds</div>
Loan Length<div id="slider2"></div>
Days Loaned <input type="text" id="days" value="1"/><br /><br />
Repayment Date<br />
<div id="date"></div><br />
Your Loan
<input id="amount2" type="text" />
Interest
<input id="amount3" type="text" /><br />
APR
<input id="amount4" type="text" /><br />
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js'></script>
<script src="js/index.js"></script>
</body>
</html>
解决方案
考虑以下示例代码。
$(function() {
function update() {
$interest = 0.3;
$perday = 15;
$amount1 = parseInt($("#amount").val());
$dayscount = parseInt($("#days").val());
$amount2 = $amount1 + $interest * $amount1 + ($dayscount * ($perday / 100));
$apr = (($amount2 - $amount1 / $amount1) / (($dayscount / 365) * 10000));
$("#amount2").val($amount2);
$("#amount3").val(parseFloat($amount2 - $amount1).toFixed(2));
$("#amount4").val($apr);
return [$amount1, $dayscount, $amount2, parseFloat($amount2 - $amount1).toFixed(2), $apr];
}
function addDaysToDate(days) {
var d = new Date();
d.setHours(d.getHours() + (24 * days));
var cStr = $.datepicker.formatDate("M d, yy", d);
return cStr;
}
debugger;
$("#slider1").slider({
max: 5000,
min: 500,
step: 10,
slide: function(event, ui) {
$("#amount").val(ui.value);
console.log(update());
},
change: function(event, ui) {
if (ui.value >= 2000) {
$("#mindiv").show();
} else {
$("#mindiv").hide();
}
}
});
$("#slider2").slider({
max: 30,
min: 1,
slide: function(event, ui) {
$("#days").val(ui.value);
$("#date").text(addDaysToDate(parseInt($("#days").val())));
update();
},
create: function(event, ui) {
$("#date").text(addDaysToDate(parseInt($("#days").val())));
}
});
$("#days").val($("#slider2").slider("value"));
$("#days").change(function(event) {
var data = $("#days").val();
if (data.length > 0) {
if (parseInt(data) >= 0 && parseInt(data) <= 31) {
$("#slider2").slider("option", "value", data);
} else {
if (parseInt(data) < 1) {
$("#days").val("1");
$("#slider2").slider("option", "value", "1");
}
if (parseInt(data) > 31) {
$("#days").val("31");
$("#slider2").slider("option", "value", "31");
}
}
} else {
$("#slider2").slider("option", "value", "1");
}
$("#date").text(addDaysToDate(parseInt($("#days").val())));
});
update();
});
<link rel='stylesheet prefetch' href='https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css'>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css'> Loan Amount
<div id="slider1"></div>
Your Loan <input type="text" id="amount" value="500" /><br /><br /> hhhh
<div id="mindiv" style="display: none; background: red;">asds</div>
Loan Length
<div id="slider2"></div>
Days Loaned <input type="text" id="days" value="1" /><br /><br /> Repayment Date<br />
<div id="date"></div><br /> Your Loan
<input id="amount2" type="text" /> Interest
<input id="amount3" type="text" /><br /> APR
<input id="amount4" type="text" /><br />
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js'></script>
有时最好把你的功能放在第一位。此外,您似乎正在与滑块 1 中永远无法达到的值进行比较。我对其进行了调整,现在当金额超过 2000 时,会显示警告。释放滑块后会显示。如果您希望它在滑动操作期间出现,请将操作移至slide
回调。
推荐阅读
- bash - 使用shell脚本读取两个文件并在第三个文件中按顺序写入数据
- django - “没有要应用的迁移”消息,其中有一些要应用的迁移
- java - 枚举中的通用方法参数
- javascript - 通过php调用javascript函数的问题
- jsf - 从另一个 p:dialog 调用 p:dialog :数据为空
- javascript - 无法使用 x5c (x509) 公共证书验证 JWT
- html - 在输入类型范围的步骤和拇指上放置图标
- python - Python 性能:平方根和热循环操作策略
- excel - 根据标题复制Excel中的列
- java - IntelliJ Maven JAR“没有主要清单属性错误”