如果fieldA中的金额高于fieldB中的金额,则希望显示通知框。
目前有一些代码可以正常工作,但通知框会根据实际数量来打开和关闭。
我错过了什么?
jquery的:
$(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.');
}
})
});
HTML:
< p style="display: none;" class="error labelNotification">
答案 0 :(得分:4)
这是为toggle(boolean)
方法量身定做的。此外,您必须小心附加到通知标签...如果用户更改他的答案两次怎么办?最好有多个通知对象,每个通知对象都可以包含单一类型通知的内容。
$(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.');
}
})
});
答案 1 :(得分:3)
如果您要比较数值(看起来像是这样),则应使用parseInt或parseFloat将val()
返回的(字符串)值转换为整数。根据{{3}},函数始终返回一个字符串值。
答案 2 :(得分:1)
我发现了问题,
首先,您需要正确使用分号,如下所示
$('#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&gt; 30它不会显示
这是第二个问题
最终问题是标签一直是空的
$('.labelNotification').html('')'
答案 3 :(得分:0)
切换不适合您的情况。
你想比较然后决定。
由于您正在查看数字,我强烈建议您使用数字类型进行比较,使用parseInt()
或parseFloat()
。
通知标签中的文字只需要设置一次,因为当B&gt;时,您没有任何评论显示某些内容。答:我建议在HTML中设置它。
<span class="labelNotification" style="display:none">Your Warning Text</span>
<!-- if your CSS class has `display:none` remove the style attribute -->
至于jQuery。
$(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()
}
});
});