如何解决Javascript,将Nan转换为0.00后验证值的问题
最初,我在下面的javascript中验证重量。但是要意识到,有可能没有selfDefinedGrid,这意味着权重将为NaN。然后,我添加了一个if / else语句将NaN转换为0.00。转换有效,但重量验证不再有效。请告知如何解决此问题,以便将NaN值转换为0.00,并且还将执行重量检查。
原文:
$j( '#' + config.TableGridNames._02_SelfDefined + ' tbody tr td:nth-child(' + config.SelfDefinedGrid.Edit_Weight_Idx + ')' ).each( function ()
{
var row_index = $j( this ).closest( 'tr' ).index();
/* skip over the header row; return is equivalent to continue */
if ( row_index == 0 ) { return; }
$j( this ).css( { 'background-color': 'white' } );
var oWeight = $j( this ).find( 'input' );
if ( !helper.isNumber( oWeight.val() ) || parseFloat( oWeight.val() ) < 0 || parseFloat( oWeight.val() ) > 1 )
{
$j( this ).css( { 'background-color': '#FFD1D1' } );
blIsError = true;
}
decWeight = decWeight + parseFloat( oWeight.val() );
console.log( 'Self-Defined (' + row_index.toString() + ') ' + decWeight.toString() );
} );
更新:
$j( '#' + config.TableGridNames._02_SelfDefined + ' tbody tr td:nth-child(' + config.SelfDefinedGrid.Edit_Weight_Idx + ')' ).each( function ()
{
var row_index = $j( this ).closest( 'tr' ).index();
/* skip over the header row; return is equivalent to continue */
if ( row_index == 0 ) { return; }
$j( this ).css( { 'background-color': 'white' } );
var oWeight = $j( this ).find( 'input' );
if (oWeight.val() == 'NaN')
{
oWeight.val() = 0.00;
} else {
return oWeight.val();
}
if ( !helper.isNumber( oWeight.val() ) || parseFloat( oWeight.val() ) < 0 || parseFloat( oWeight.val() ) > 1 )
{
$j( this ).css( { 'background-color': '#FFD1D1' } );
blIsError = true;
}
decWeight = decWeight + parseFloat( oWeight.val() );
console.log( 'Self-Defined (' + row_index.toString() + ') ' + decWeight.toString() );
} );
解决方法
如果您似乎正在尝试将0.0分配给函数调用,那就是导致问题的原因。
if (oWeight.val() == 'NaN') {
oWeight.val() = 0.0;
} else {
return oWeight.val();
}
这是上面代码的修复程序
let val = 0.0;
if (oWeight.val() == 'NaN') {
val = 0.0;
} else {
val = oWeight.val();
}
更紧凑的解决方案
let val = oWeight.val() == 'NaN' ? 0.0 : oWeight.val();
然后,在任一示例中,您都可以使用val
代替oWeight.val()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。