Je souhaite utiliser un opérateur ternaire pour l'instruction jQuery ci-dessous, comme si employee_salary est empty
ou null
, je veux attribuer la valeur 0 (zéro). Sinon, attribuez simplement la valeur réelle.
jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']))
5 Réponses :
Vous pouvez utiliser l'opérateur ternary
simplement.
console.log('' || 0); console.log(null || 0); console.log(undefined || 0);
selected_table_data['employee_salary'] ? parseInt(selected_table_data['employee_salary']) : 0
vous ne vérifiez pas null? Je veux attribuer la valeur 0 s'il y a une valeur nulle ou vide.
Il vérifiera null
, undefined
ou empty
. Essayez de console.log(null || 0);
Désolé, cela ne fonctionne pas. J'obtiens comme "NaN" si j'utilise votre solution.
Cela signifie alors que vous contenez des lettres différentes, sauf celles nulles et vides. Pouvez-vous partager le contenu selected_table_data['employee_salary']
pour les cas NaN
?
Le problème est l'utilisation de parseInt (chose) si la chose est nulle / non définie. Votre réponse ne correspond pas à vos exemples.
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');
Voici un exemple
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 );
Utilisation || opérateur ou juste un simple opérateur ternaire fonctionnerait si son nom est null
, undefined
ou ''
. Mais cela ne fonctionnera pas pour un espace vide comme celui-ci ' '
(puisque Boolean (' ')
évalué comme vrai), ce qui n'est pas bon si vous voulez remplacer une chaîne vide ou des espaces vides pour zéro. Alors je vous suggère de faire quelque chose comme ça,
jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']) ? parseInt(selected_table_data['employee_salary']) : 0);
Cela vous permettra non seulement de vérifier si la chaîne nulle, non définie, vide et les espaces blancs, mais empêchera également NaN
d'être une valeur sur votre formulaire (à la place, zéro aura lieu).
J'ai essayé votre solution mais j'envoie toujours la valeur du salaire de l'employé sous la forme "NaN"
Je soupçonne que parseInt était votre tentative de faire ce travail vous-même (assez juste). Je vais vous suggérer de le supprimer et d'essayer simplement
jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] || 0);
Une solution simple pour vous.
jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] * 1)