我想为下面的jQuery语句使用一个三元运算符,比如如果employee_salary是empty
或null
,我想赋值为0(零(。否则,只需指定实际值。
jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']))
var employee_salary = selected_table_data['employee_salary'];
var salary_form_value = employeeSalary ? parseInt(employee_salary) : '0';
jQuery('#employee_form #employee_salary').val(salary_form_value);
// If you want to inline it, you could do the following:
jQuery('#employee_form #employee_salary').val(
selected_table_data['employee_salary']
? parseInt(selected_table_data['employee_salary']
: 0
);
以下是的示例
const s1 = null;
console.log(s1 ? s1 : 'There was a null value');
const s2 = ''
console.log(s2 ? s2 : 'There was an empty string');
const s3 = 'value';
console.log(s3 ? s3 : 'There was no value');
您可以简单地使用ternary
运算符。
selected_table_data['employee_salary']
? parseInt(selected_table_data['employee_salary'])
: 0
console.log('' || 0);
console.log(null || 0);
console.log(undefined || 0);
我怀疑parseInt是你自己尝试的(足够公平(。我建议你去掉它,试着简单地
jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] || 0);
一个简单的解决方案。
jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] * 1)
如果是null
、undefined
或''
,则使用||运算符或仅使用简单的三元运算符即可。但它不适用于像' '
这样的空格(因为Boolean (' ')
的计算结果为true(,如果你想用任何空字符串或空格替换零,这是不好的。所以我建议你这样做,
jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']) ? parseInt(selected_table_data['employee_salary']) : 0);
这不仅可以检查是否为null、未定义、空字符串和空格,还可以防止NaN
成为表单上的值(而不是零(。