javascript运算符与输入小数点不匹配
我不明白为什么我使用像javascript运算符与输入小数点不匹配,javascript,php,html,Javascript,Php,Html,我不明白为什么我使用像a>b这样的条件值,但它不能正常工作,可能是因为值a=decimal。我的代码如下: HTML <input type="text" class="form-control" name="numberdays" id="numberdays" value="10.0/> <input type="text" name="cutii&qu
a>b这样的条件值,但它不能正常工作,可能是因为值a=decimal。我的代码如下:
HTML
<input type="text" class="form-control" name="numberdays" id="numberdays" value="10.0/>
<input type="text" name="cutii" id="cutii" value="9.0">
<button class="btn btn-primary waves-effect" id="subcut" type="submit" disabled>
结果是我的按钮被禁用,它不应该被禁用
这是我的js。实际上,我使用datepicker生成自动生成的天数。可能是因为没有检测到我使用运算符的情况。
JS用于日期选择器
$(文档).ready(函数(){
设$fromDate=$(“#fromDate”),
$toDate=$(“#toDate”);
$fromDate.datepicker().on('change',function()){
$toDate.datepicker('option','minDate',$(this.val());
});
$toDate.datepicker().on('change',function()){
$fromDate.datepicker('option','maxDate',$(this.val());
});;
});
$(函数(){
设$fromDate=$(“#fromDate”),
$toDate=$(“#toDate”),
$numberDays=$(“#numberDays”),
$numberCuti=$(“#cuti”);
$fromDate.datepicker().on('change',function()){
$toDate.datepicker('option','minDate',$(this.val());
$numberDays.val(calculatedIFF($toDate.val(),$(this.val()));
});
$toDate.datepicker().on('change',function()){
$fromDate.datepicker('option','maxDate',$(this.val());
$numberDays.val(calculatedIff($(this.val(),$fromDate.val());
});
cutifrom.addEventListener('input',()=>{
if(parseFloat(cuti.value)>=parseFloat(numberdays.value)){
子切口移除属性(“禁用”);
}否则{
subcut.setAttribute('disabled','disabled');
}
}) ;
函数CalculatedIFF(endDate,startDate){
如果(结束日期和开始日期){
设e=力矩(结束日期),
s=力矩(起始日期);
返回e.diff(s,“天”);
}
返回null;
}
});
您的值是字符串类型,比较结果与数字不同,请尝试将该值转换为数字,然后查看是否有效
您需要将代码更改为此表单:
cutifrom.addEventListener('input',()=>{
if (Number(cutii.value) > Number(numberdays.value)) {
subcut.removeAttribute('disabled');
}else{
subcut.setAttribute('disabled','disabled');
}
}) ;
祝你好运:)。也请阅读和。如果js datepicker自动输入了numberdays
的值,该怎么办?如果我在numberdays
中输入手动操作,该怎么办。但是如果我在我的numberdays
上使用datepicker获取值,它不起作用,这能回答你的问题吗?你能告诉我怎么做吗?很抱歉,我在js中是新的:')请尝试将所选条目打印到日志中,看看如何准确地访问它。我不知道你说什么,很抱歉。在函数的开头添加这一行:console.log('numberdays.value:',numberdays.value),并使用控制台中的开发工具检查该值写入了什么,这样您就知道错误在哪里了。看起来我的datepicker js有问题。当我输入并查看控制台时,什么都没有发生。结果为空
<script type="text/javascript">
$(document).ready(function(){
let $fromDate = $('#fromdate'),
$toDate = $('#todate');
$fromDate.datepicker().on('change', function(){
$toDate.datepicker('option', 'minDate', $(this).val());
});
$toDate.datepicker().on('change', function(){
$fromDate.datepicker('option', 'maxDate', $(this).val());
});;
});
$(function() {
let $fromDate = $('#fromdate'),
$toDate = $('#todate'),
$numberDays = $('#numberdays'),
$numberCuti = $('#cuti');
$fromDate.datepicker().on('change', function(){
$toDate.datepicker('option', 'minDate', $(this).val());
$numberDays.val(calculateDateDiff($toDate.val(), $(this).val()));
});
$toDate.datepicker().on('change', function(){
$fromDate.datepicker('option', 'maxDate', $(this).val());
$numberDays.val(calculateDateDiff($(this).val(), $fromDate.val()));
});
cutifrom.addEventListener('input',()=>{
if (parseFloat(cuti.value) >= parseFloat(numberdays.value)) {
subcut.removeAttribute('disabled');
}else{
subcut.setAttribute('disabled','disabled');
}
}) ;
function calculateDateDiff(endDate, startDate) {
if (endDate && startDate) {
let e = moment(endDate),
s = moment(startDate);
return e.diff(s, "days");
}
return null;
}
});
</script>
cutifrom.addEventListener('input',()=>{
if (Number(cutii.value) > Number(numberdays.value)) {
subcut.removeAttribute('disabled');
}else{
subcut.setAttribute('disabled','disabled');
}
}) ;