Javascript 如果为true,则显示字段;如果为false,则隐藏字段?
如果字段a中的金额高于字段B中的金额,则希望显示通知框 目前有一些代码在工作,但通知框的打开和关闭并不取决于实际金额 我错过了什么 jquery:Javascript 如果为true,则显示字段;如果为false,则隐藏字段?,javascript,jquery,Javascript,Jquery,如果字段a中的金额高于字段B中的金额,则希望显示通知框 目前有一些代码在工作,但通知框的打开和关闭并不取决于实际金额 我错过了什么 jquery: $(document).ready(function() { $('#fieldA').change(function(){ if($(this).val()>$('#fieldb').val()){ //display it on the form
$(document).ready(function() {
$('#fieldA').change(function(){
if($(this).val()>$('#fieldb').val()){
//display it on the form
$('.labelNotification').toggle();
$('.labelNotification').append('Not recommended to have FieldA figure higher than FieldB.');
}
})
});
$(文档).ready(函数(){
$('#fieldA')。更改(函数(){
if($(this.val()>$('#fieldb').val()){
//在表单上显示它
$('.labelNotification').toggle();
$('.labelNotification').append('不建议FieldA数字高于FieldB');
}
})
});
HTML:
如果要比较数值(看起来像是这样),应该使用或将val()
返回的(字符串)值转换为整数。根据,函数总是返回字符串值。我发现了问题
首先,您需要正确地使用分号,如下所示
$('#fieldA').change(function () {
if ($(this).val() > $('#fieldB').val()) {
alert("its greater");
//display it on the form
$('.labelNotification').append('Not recommended to have FieldA figure higher than FieldB.');
$('.labelNotification').show();
}
else {$('.labelNotification').hide();
$('.labelNotification').html('');}
});
第二件事,当你切换它不会显示第二次
如果40>30
再次,如果您输入50和50>30,它将不会显示
这是第二个问题
最后一个问题是始终清空标签
$('.labelNotification').html('')'
这是为
切换(布尔)
方法量身定制的。另外,在添加通知标签时必须小心。。。如果用户更改了两次答案怎么办?最好有多个通知对象,每个对象可以包含单一类型通知的内容
$(function() {
$('#fieldA').change(function() {
var isLarger = +$(this).val() > +$('#fieldB').val(); // Note: convert to number with '+'
var $labelNotification = $('.labelNotification');
$labelNotification.toggle(isLarger);
if (isLarger) {
//display it on the form
$labelNotification.html('Not recommended to have FieldA figure higher than FieldB.');
}
})
});
切换不是适合您的情况的最佳方法 你要比较然后决定 由于您正在查看数字,我强烈建议使用数字类型进行比较,可以使用
parseInt()
或parseFloat()
通知标签中的文本只需要设置一次,因为当B>A时,您没有任何注释显示它。我建议在HTML中设置此项
<span class="labelNotification" style="display:none">Your Warning Text</span>
<!-- if your CSS class has `display:none` remove the style attribute -->
我怀疑您正在检查的大于的if块是否工作不正常,请打印值并查看。您可能还缺少一些代码,这些代码会在不满足条件时删除您要添加的文本(即FieldA
$(function() {
$("#fieldA").change(function() {
var a = parseInt($(this).val());
var b = parseInt($("#fieldb").val());
// handle if a or b is not a number --> isNaN(a) || isNaN(b)
if( a > b ) {
$('.labelNotification').show()
} else {
$('.labelNotification').hide()
}
});
});