javascript - 如何不允许输入字段值大于其他值
问题描述
我有几个动态字段,其中有一些值,第一个字段是Total Amt
,其他是一些动态字段,然后是另一个字段,Bal Amt
最初与总量相反。
假设Total Amt=500
然后Bal Amt=-500
在我的动态字段中,有一个字段将始终存在,即tender Cash
所以我想做的是
Tender cash
可以更大,Total Amount
例如如果总金额 = 500,则投标现金可以为 550,然后 Bal Amt 自动为 +50
但是当 Total bal 为 0 时,我希望他们限制其他几个字段,那么它不应该接受输入或警报或控制台
就像如果Total Amt=500
tender cash=500 || 550
那么所有其他人都不会接受任何输入
如果Total Amt=500
tender cash 50
那么其他人可以接受输入,直到bal Amt=0
bal Amt=0 其他人不应该接受输入。
我正在使用计算属性进行计算,我不知道如何做上述事情。
代码
new Vue({
el: '#app',
data() {
return {
totalAmt: 500,
paymentMode: [{
"PAYMENTCODE": "TC",
"PAYMENTNAME": "Tender Cash"
}, {
"PAYMENTCODE": "CC",
"PAYMENTNAME": "Credit Card"
}, {
"PAYMENTCODE": "Cp",
"PAYMENTNAME": "Coupn"
}, {
"PAYMENTCODE": "ptm",
"PAYMENTNAME": "PayTM"
}, {
"PAYMENTCODE": "Cr",
"PAYMENTNAME": "Credit"
}, {
"PAYMENTCODE": "SW",
"PAYMENTNAME": "Swiggy"
}, {
"PAYMENTCODE": "BB",
"PAYMENTNAME": "uber Eats"
}, {
"PAYMENTCODE": "WE",
"PAYMENTNAME": "Zomato"
}]
}
},
computed: {
balAmt() {
// sum of inputs of paymentMode
const sum = this.paymentMode.reduce((a, b) => a + (+b.Amount || 0), 0);
return sum - this.totalAmt;
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<label>Total Amt</label>
<input type="text" v-model="totalAmt">
</div>
<div v-for="mode in paymentMode" :key="mode.PAYMENTCODE" class="form-group col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4">
<label>{{mode.PAYMENTNAME}}</label>
<input type="text" v-model="mode.Amount">
</div>
<div>
<label>Bal Amt</label>
<input type="text" :value="balAmt">
</div>
</div>
我只需要用 Vue.js 来做这件事
解决方案
你可以做这样的事情 -
我用过:disabled
<input type="text" v-model="mode.Amount" :disabled="balAmt>=0 && mode.PAYMENTCODE!='TC'">
new Vue({
el: '#app',
data() {
return {
totalAmt: 500,
paymentMode: [{
"PAYMENTCODE": "TC",
"PAYMENTNAME": "Tender Cash"
}, {
"PAYMENTCODE": "CC",
"PAYMENTNAME": "Credit Card"
}, {
"PAYMENTCODE": "Cp",
"PAYMENTNAME": "Coupn"
}, {
"PAYMENTCODE": "ptm",
"PAYMENTNAME": "PayTM"
}, {
"PAYMENTCODE": "Cr",
"PAYMENTNAME": "Credit"
}, {
"PAYMENTCODE": "SW",
"PAYMENTNAME": "Swiggy"
}, {
"PAYMENTCODE": "BB",
"PAYMENTNAME": "uber Eats"
}, {
"PAYMENTCODE": "WE",
"PAYMENTNAME": "Zomato"
}]
}
},
computed: {
balAmt() {
// sum of inputs of paymentMode
const sum = this.paymentMode.reduce((a, b) => a + (+b.Amount || 0), 0);
return sum - this.totalAmt;
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<label>Total Amt</label>
<input type="text" v-model="totalAmt">
</div>
<div v-for="mode in paymentMode" :key="mode.PAYMENTCODE" class="form-group col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4">
<label>{{mode.PAYMENTNAME}}</label>
<input type="text" v-model="mode.Amount" :disabled="balAmt>=0 && mode.PAYMENTCODE!='TC'">
</div>
<div>
<label>Bal Amt</label>
<input type="text" :value="balAmt">
</div>
</div>
推荐阅读
- java - 使用 Pixelmon mod 1.12.2-6.3.1 在 Eclipse 中运行 Minecraft Forge 服务器/客户端
- asp.net - 经典的 ASP XML 解析问题
- ios - Xcode 10 beta2:无法为没有参数的“UIView”类型调用初始化程序
- javascript - 初始化后如何将输入绑定到Vue实例?
- entity-framework - 实体框架:从文本文件加载数据库
- authentication - Nest js 无法解析依赖项。在身份验证服务中
- http - 如何将 C++ /WinRT HttpRequestMessage 与自定义 POST 正文和 HttpFormUrlEncodedContent 一起使用(UWP 应用程序)
- mysql - Linux Customized Cron - 从 Mysql 运行 cron
- python - 从python中的文本中提取JSON
- r - 在集群上运行时 R 脚本出错。脚本在笔记本电脑上运行良好