【发布时间】:2021-02-22 23:14:51
【问题描述】:
最初,我有以下 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() );
} );
【问题讨论】:
标签: javascript nan